/*
 Do not remove or change this notice.
 overlibmws.js core module - Copyright Foteos Macrides 2002-2009. All rights reserved.
   Initial: August 18, 2002 - Last Revised: October 25, 2008
 This module is subject to the same terms of usage as for Erik Bosrup's overLIB,
 though only a minority of the code and API now correspond with Erik's version.
 See the overlibmws Change History and Command Reference via:

	http://www.macridesweb.com/oltest/

 Published under an open source license: http://www.macridesweb.com/oltest/license.html
 Give credit on sites that use overlibmws and submit changes so others can use them as well.
 You can get Erik's version via: http://www.bosrup.com/web/overlib/
*/

// PRE-INIT -- Ignore these lines, configuration is below.
var OLloaded=0,OLbubblePI=0,OLcrossframePI=0,OLdebugPI=0,OLdraggablePI=0,OLexclusivePI=0,OLfilterPI=0,
OLfunctionPI=0,OLhidePI=0,OLiframePI=0,OLmodalPI=0,OLovertwoPI=0,OLscrollPI=0,OLshadowPI=0,OLprintPI=0,
pmCnt=1,pMtr=new Array(),OLcmdLine=new Array(),OLrunTime=new Array(),OLv,OLudf,OLrefXY,
OLpct=new Array("83%","67%","83%","100%","117%","150%","200%","267%");if(typeof OLgateOK=='undefined')var OLgateOK=1;
var OLp1or2c='inarray,caparray,caption,closetext,right,left,center,autostatuscap,padx,pady,below,above,vcenter,donothing',
OLp1or2co='nofollow,background,offsetx,offsety,fgcolor,bgcolor,cgcolor,textcolor,capcolor,width,wrap,wrapmax,height,border,'
+'base,status,autostatus,snapx,snapy,fixx,fixy,relx,rely,midx,midy,ref,refc,refp,refx,refy,fgbackground,bgbackground,'
+'cgbackground,fullhtml,capicon,textfont,captionfont,textsize,captionsize,timeout,delay,hauto,vauto,nojustx,nojusty,fgclass,'
+'bgclass,cgclass,capbelow,textpadding,textfontclass,captionpadding,captionfontclass,sticky,noclose,mouseoff,offdelay,'
+'closecolor,closefont,closesize,closeclick,closetitle,closefontclass,decode',OLp1or2o='text,cap,close,hpos,vpos,padxl,'
+'padxr,padyt,padyb',OLp1co='label',OLp1or2=OLp1or2co+','+OLp1or2o,OLp1=OLp1co+','+'frame';
OLregCmds(OLp1or2c+','+OLp1or2co+','+OLp1co);
function OLud(v){return eval('typeof ol_'+v+'=="undefined"')?1:0;}

var toPlayerId = 0;
var toPlanetId = 0;
var fromPlayerId = 0;
var fromPlanetName = '';
function sendMessage(message)  {
   if (message.value == "Your message here..." || message.value == "") {
      overlib ('<BR><b>Empty message ignored</b><BR><BR>', CAPTION, 'Message cancelled', STICKY, NOCLOSE, MOUSEOFF, ABOVE, TEXTCOLOR, '#CC0000');
      return;
   }

   //   alert("From " + myID + " to " + destID + ": " + message.value);
   var idField = document.getElementById("userid");
   var url = "http://localhost:8088/servlet/Sendmail";
   var postdata = "toplayerid=" + toPlayerId + "&toplanetid=" + toPlanetId + "&fromplayerid=" + fromPlayerId + "&fromplanetname=" + encodeURIComponent(fromPlanetName) + "&msg=" + encodeURIComponent(message.value);
   if (typeof XMLHttpRequest != "undefined") {
      req = new XMLHttpRequest();
   } else if (window.ActiveXObject) {
      req = new ActiveXObject("Microsoft.XMLHTTP");
   }
   req.open("POST", url, true);
   //req.onreadystatechange = callback;
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   req.setRequestHeader("Content-length", postdata.length);
   req.send(postdata);
   //req.send(null);
   overlib ('<BR><b>Your message has been successfully sent!</b><BR><BR>', CAPTION, 'Message sent', STICKY, NOCLOSE, MOUSEOFF, ABOVE, TEXTCOLOR, '#00CC00');
}

var hypForm = '<form action=\'javascript:void(0);\' action=\'javascript:void(0);\' method=post><textarea name=message rows=5 cols=30>Your message here...</textarea><BR><input type=submit value=Send onclick=\'return sendMessage(message);\'></form>';

// DEFAULT CONFIGURATION -- See overlibConfig.txt for descriptions
if(OLud('fgcolor'))var ol_fgcolor="#002200";
if(OLud('bgcolor'))var ol_bgcolor="#FF0000";
if(OLud('cgcolor'))var ol_cgcolor="#FFFFFF";
if(OLud('textcolor'))var ol_textcolor="#FFFFFF";
if(OLud('capcolor'))var ol_capcolor="#FF0000";
if(OLud('closecolor'))var ol_closecolor="#FF0000";
if(OLud('textfont'))var ol_textfont="Maiandra GD,Palatino Linotype,Palatino";
if(OLud('captionfont'))var ol_captionfont="Maiandra GD,Palatino Linotype,Palatino";
if(OLud('closefont'))var ol_closefont="Maiandra GD,Palatino Linotype,Palatino";
if(OLud('textsize'))var ol_textsize=1;
if(OLud('captionsize'))var ol_captionsize=1;
if(OLud('closesize'))var ol_closesize=1;
if(OLud('fgclass'))var ol_fgclass="";
if(OLud('bgclass'))var ol_bgclass="";
if(OLud('cgclass'))var ol_cgclass="";
if(OLud('textpadding'))var ol_textpadding=2;
if(OLud('textfontclass'))var ol_textfontclass="overlibcontent";
if(OLud('captionpadding'))var ol_captionpadding=2;
if(OLud('captionfontclass'))var ol_captionfontclass="";
if(OLud('closefontclass'))var ol_closefontclass="";
if(OLud('close'))var ol_close="Close";
if(OLud('closeclick'))var ol_closeclick=0;
if(OLud('closetitle'))var ol_closetitle="Click to Close";
if(OLud('text'))var ol_text="Default Text";
if(OLud('cap'))var ol_cap="";
if(OLud('capbelow'))var ol_capbelow=0;
if(OLud('background'))var ol_background="";
if(OLud('width'))var ol_width=200;
if(OLud('wrap'))var ol_wrap=0;
if(OLud('wrapmax'))var ol_wrapmax=0;
if(OLud('height'))var ol_height= -1;
if(OLud('border'))var ol_border=1;
if(OLud('base'))var ol_base=0;
if(OLud('offsetx'))var ol_offsetx=10;
if(OLud('offsety'))var ol_offsety=10;
if(OLud('sticky'))var ol_sticky=0;
if(OLud('nofollow'))var ol_nofollow=0;
if(OLud('noclose'))var ol_noclose=0;
if(OLud('mouseoff'))var ol_mouseoff=0;
if(OLud('offdelay'))var ol_offdelay=300;
if(OLud('hpos'))var ol_hpos=RIGHT;
if(OLud('vpos'))var ol_vpos=BELOW;
if(OLud('status'))var ol_status="";
if(OLud('autostatus'))var ol_autostatus=0;
if(OLud('snapx'))var ol_snapx=0;
if(OLud('snapy'))var ol_snapy=0;
if(OLud('fixx'))var ol_fixx= -1;
if(OLud('fixy'))var ol_fixy= -1;
if(OLud('relx'))var ol_relx=null;
if(OLud('rely'))var ol_rely=null;
if(OLud('midx'))var ol_midx=null;
if(OLud('midy'))var ol_midy=null;
if(OLud('ref'))var ol_ref="";
if(OLud('refc'))var ol_refc='UL';
if(OLud('refp'))var ol_refp='UL';
if(OLud('refx'))var ol_refx=0;
if(OLud('refy'))var ol_refy=0;
if(OLud('fgbackground'))var ol_fgbackground="";
if(OLud('bgbackground'))var ol_bgbackground="";
if(OLud('cgbackground'))var ol_cgbackground="";
if(OLud('padxl'))var ol_padxl=1;
if(OLud('padxr'))var ol_padxr=1;
if(OLud('padyt'))var ol_padyt=1;
if(OLud('padyb'))var ol_padyb=1;
if(OLud('fullhtml'))var ol_fullhtml=0;
if(OLud('capicon'))var ol_capicon="";
if(OLud('frame'))var ol_frame=self;
if(OLud('timeout'))var ol_timeout=0;
if(OLud('delay'))var ol_delay=0;
if(OLud('hauto'))var ol_hauto=0;
if(OLud('vauto'))var ol_vauto=0;
if(OLud('nojustx'))var ol_nojustx=0;
if(OLud('nojusty'))var ol_nojusty=0;
if(OLud('label'))var ol_label="";
if(OLud('decode'))var ol_decode=0;
// ARRAY CONFIGURATION - See overlibConfig.txt for descriptions.
if(OLud('texts'))var ol_texts=new Array("Text 0","Text 1");
if(OLud('caps'))var ol_caps=new Array("Caption 0","Caption 1");
// END CONFIGURATION -- Don't change anything below, all configuration is above.

// INIT -- Runtime variables.
var o3_text="",o3_cap="",o3_sticky=0,o3_nofollow=0,o3_background="",o3_noclose=0,o3_mouseoff=0,o3_offdelay=300,o3_hpos=RIGHT,
o3_offsetx=10,o3_offsety=10,o3_fgcolor="",o3_bgcolor="",o3_cgcolor="",o3_textcolor="",o3_capcolor="",o3_closecolor="",
o3_width=200,o3_wrap=0,o3_wrapmax=0,o3_height= -1,o3_border=1,o3_base=0,o3_status="",o3_autostatus=0,o3_snapx=0,o3_snapy=0,
o3_fixx= -1,o3_fixy= -1,o3_relx=null,o3_rely=null,o3_midx=null,o3_midy=null,o3_ref="",o3_refc='UL',o3_refp='UL',o3_refx=0,
o3_refy=0,o3_fgbackground="",o3_bgbackground="",o3_cgbackground="",o3_padxl=0,o3_padxr=0,o3_padyt=0,o3_padyb=0,o3_fullhtml=0,
o3_vpos=BELOW,o3_capicon="",o3_textfont="Verdana,Arial,Helvetica",o3_captionfont="",o3_closefont="",o3_textsize=1,OLcC=null,
o3_captionsize=1,o3_closesize=1,o3_frame=self,o3_timeout=0,o3_delay=0,o3_hauto=0,o3_vauto=0,o3_nojustx=0,o3_nojusty=0,
o3_close="",o3_closeclick=0,o3_closetitle="",o3_fgclass="",o3_bgclass="",o3_cgclass="",o3_textpadding=2,o3_textfontclass="",
o3_captionpadding=2,o3_captionfontclass="",o3_closefontclass="",o3_capbelow=0,o3_label="",o3_decode=0,
CSSOFF=DONOTHING,CSSCLASS=DONOTHING,over=null,OLdelayid=0,OLtimerid=0,OLshowid=0,OLndt=0,OLfnRef="",OLhover=0,OLx=0,OLy=0,
OLshowingsticky=0,OLallowmove=0,OLoverHTML="",OLover2HTML="",OLifRef="",OLo2Ref="",OLifX=0,OLifY=0,
OLua=(OLv=navigator.userAgent)?OLv.toLowerCase():'',
OLns4=(navigator.appName=='Netscape'&&parseInt(navigator.appVersion)==4)?1:0,
OLns6=(document.getElementById)?1:0,
OLie4=(document.all)?1:0,
OLgek=(OLv=OLua.match(/gecko\/(\d{8})/i))?parseInt(OLv[1]):0,
OLmac=(OLua.indexOf('mac')>=0)?1:0,
OLsaf=(OLua.indexOf('safari')>=0)?1:0,
OLkon=(OLua.indexOf('konqueror')>=0)?1:0,
OLkht=(OLsaf||OLkon)?1:0,
OLopr=(OLua.indexOf('opera')>=0)?1:0,
OLop7=(OLopr&&document.createTextNode)?1:0;
OLop95=(OLop7&&document.getElementsByClassName)?1:0;
if(OLopr){OLns4=OLns6=OLgek=0;OLie4=(OLop7)?1:0;}
var OLieM=((OLie4&&OLmac)&&!(OLkht||OLopr))?1:0,
OLie5=0,OLie55=0,OLie7=0;if(OLie4&&!OLop7){
if((OLv=OLua.match(/msie (\d\.\d+)\.*/i))&&(OLv=parseFloat(OLv[1]))>=5.0){
OLie5=1;OLns6=0;if(OLv>=5.5)OLie55=1;if(OLv>=7.0)OLie7=1;}if(OLns6)OLie4=0;}
if(OLns4)window.onresize=function(){location.reload();};var OLchkMh=1,OLdw;
if(OLns4||OLie4||OLns6){OLmh();if(window.addEventListener)window.addEventListener("unload",
OLulCl,false);}else{overlib=nd=cClick=OLpageDefaults=no_overlib;}
function OLulCl(){if(over)cClick();window.removeEventListener("unload",OLulCl,false);}

/*
 PUBLIC FUNCTIONS
*/
// Loads defaults then args into runtime variables.
function overlib(mytext){
if(!(OLloaded&&OLgateOK))return;if((OLexclusivePI)&&OLisExclusive(arguments))return true;if(OLchkMh)OLmh();if(OLndt&&
!OLtimerid)OLndt=0;if(over){if(OLfilterPI)o3_filter=0;cClick();}

if (mytext == 'MYFORM')
	overlib.arguments[0] = hypForm;

if(parent!=self){if(parent.OLo2Ref){parent.OLeval(
parent.OLo2Ref);parent.OLo2Ref="";}if(parent.OLifRef){parent.OLeval(parent.OLifRef);parent.OLifRef="";}}if(OLo2Ref){
eval(OLo2Ref);OLo2Ref="";}if(OLifRef){eval(OLifRef);OLifRef="";}OLload(OLp1or2);OLload(OLp1);OLfnRef="";OLifX=0;OLifY=0;
OLhover=0;if(OLcrossframePI&&parent!=self)OLchkFRAME(arguments);OLsetRunTimeVar();OLparseTokens('o3_',arguments);if(!(
over=OLmkLyr()))return false;if(o3_decode)OLdecode();if(OLprintPI)OLchkPrint();if(OLbubblePI)OLchkForBubbleEffect();if(
OLdebugPI)OLsetDebugCanShow();if(OLshadowPI)OLinitShadow();if(OLiframePI)OLinitIfs();if(OLfilterPI)OLinitFilterLyr();if(
OLexclusivePI&&o3_exclusive&&o3_exclusivestatus!="")o3_status=o3_exclusivestatus;else if(o3_autostatus==2&&o3_cap!="")
o3_status=o3_cap;else if(o3_autostatus==1&&o3_text!="")o3_status=o3_text;if(!o3_delay){return OLmain();}else{OLdelayid=
setTimeout("OLmain()",o3_delay);if(o3_status!=""){self.status=o3_status;return true;}else if(!(OLop7&&event&&event.type==
'mouseover'))return false;}
}
function OLeval(s){eval(s);}

// Clears popups if appropriate
function nd(time){
if(OLloaded&&OLgateOK){if(!((OLexclusivePI)&&OLisExclusive())){if(time&&over&&!o3_delay){
if(OLtimerid>0)clearTimeout(OLtimerid);OLtimerid=(OLhover&&o3_frame==self&&!OLcursorOff())?0:
setTimeout("cClick()",(o3_timeout=OLndt=time));}else{if(!OLshowingsticky){OLallowmove=0;
if(over)OLhideObject(over);}}}}return false;
}

// Close function for stickies
function cClick(){
if(OLloaded&&OLgateOK){OLhover=0;if(over){if(OLo2Ref){eval(OLo2Ref);OLo2Ref="";}if(OLovertwoPI&&over==over2)cClick2();
OLhideObject(over);OLshowingsticky=0;OLallowmove=0;}if(OLmodalPI)OLclearModal();}return false;
}

// Sets page-specific defaults.
function OLpageDefaults(){
OLparseTokens('ol_',arguments);
}

// Gets object referenced by its id or name
function OLgetRef(l,d){var r=OLgetRefById(l,d);return (r)?r:OLgetRefByName(l,d);}

// For unsupported browsers.
function no_overlib(){return false;}

/*
 OVERLIB MAIN FUNCTION SET
*/
function OLmain(){
o3_delay=0;if(parent!=self&&o3_frame==parent&&parent.OLscrollPI&&parent.over)parent.OLclearScroll();if(o3_frame==self){
if(o3_noclose)OLoptMOUSEOFF(0);else if(o3_mouseoff)OLoptMOUSEOFF(1);}if(o3_sticky){OLshowingsticky=1;if(OLfnRef&&
parent!=self&&o3_frame==parent&&parent.overlib)parent.OLifRef=(OLfilterPI?OLfnRef+'o3_filter=0;':'')+OLfnRef+'cClick();';}
OLdoLyr();OLallowmove=0;if(o3_timeout>0){if(OLtimerid>0)clearTimeout(OLtimerid);OLtimerid=setTimeout("cClick()",o3_timeout);}
OLchkRef();OLdisp(o3_status);if(OLdraggablePI)OLcheckDrag();if(o3_status!="")return true;else if(!(OLop7&&event&&
event.type=='mouseover'))return false;
}
function OLchkRef(){
if(o3_ref){OLrefXY=OLgetRefXY(o3_ref);if(OLrefXY[0]==null&&OLcrossframePI)OLchkIfRef();
if(OLrefXY[0]==null){o3_ref="";o3_midx=0;o3_midy=0;}}
}

// Loads o3_ variables
function OLload(c){var i,m=c.split(',');for(i=0;i<m.length;i++)eval('o3_'+m[i]+'=ol_'+m[i]);}

// Chooses LGF 
function OLdoLGF(){
return (o3_background!=''||o3_fullhtml)?OLcontentBackground(o3_text,o3_background,o3_fullhtml):(o3_cap=="")?
OLcontentSimple(o3_text):(o3_sticky)?OLcontentCaption(o3_text,o3_cap,o3_close):OLcontentCaption(o3_text,o3_cap,'');
}

// Makes Layer
function OLmkLyr(id,f,z){
id=(id||'overDiv');f=(f||o3_frame);z=(z||1000);var fd=f.document,d=OLgetRefById(id,fd);
if(!d){if(OLns4)d=fd.layers[id]=new Layer(1024,f);else if(OLie4&&!OLop7){
fd.body.insertAdjacentHTML('AfterBegin','<div id="'+id+'"></div>');d=fd.all[id];}else{d=fd.createElement('div');
if(d){d.id=id;fd.body.appendChild(d);}}if(!d)return null;if(OLns4)d.zIndex=z;else{var o=d.style;o.position='absolute';
o.visibility='hidden';o.zIndex=z;}}return d;
}

// Creates and writes layer content
function OLdoLyr(){
if(o3_sticky&&OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}if(o3_background==''&&!o3_fullhtml){
if(o3_fgbackground!='')o3_fgbackground=' background="'+o3_fgbackground+'"';
if(o3_bgbackground!='')o3_bgbackground=' background="'+o3_bgbackground+'"';
if(o3_cgbackground!='')o3_cgbackground=' background="'+o3_cgbackground+'"';
if(o3_fgcolor!='')o3_fgcolor=' bgcolor="'+o3_fgcolor+'"';if(o3_bgcolor!='')o3_bgcolor=' bgcolor="'+o3_bgcolor+'"';
if(o3_cgcolor!='')o3_cgcolor=' bgcolor="'+o3_cgcolor+'"';if(o3_height>0)o3_height=(OLns4)?' height="'+o3_height+'"':
' style="height:'+o3_height+'px;"';else o3_height='';}if(!OLns4)OLrepositionTo(over,(OLns6?20:0),0);var lyrHtml=OLdoLGF();
if(o3_wrap&&!o3_fullhtml){OLlayerWrite(lyrHtml);o3_width=(OLns4?over.clip.width:over.offsetWidth);if(OLie4&&!OLop95){
var w=OLfd().clientWidth;if(o3_width>=w){if(OLop7){if(OLovertwoPI&&over==over2){var z=over2.style.zIndex;
o3_frame.document.body.removeChild(over);over2=OLmkLyr('overDiv2',o3_frame,z);over=over2;}else{
o3_frame.document.body.removeChild(over);over=OLmkLyr();}}o3_width=w-20;}}
if(o3_wrapmax<1&&o3_frame.innerWidth)o3_wrapmax=o3_frame.innerWidth-40;
if(o3_wrapmax>0&&o3_width>o3_wrapmax)o3_width=o3_wrapmax;o3_wrap=0;lyrHtml=OLdoLGF();}OLlayerWrite(lyrHtml);
o3_width=(OLns4?over.clip.width:over.offsetWidth);if(OLbubblePI)OLgenerateBubble(lyrHtml);
}

/*
 LAYER GENERATION FUNCTIONS
*/
// Makes simple table without caption
function OLcontentSimple(txt){
var t=OLbgLGF()+OLfgLGF(txt)+OLbaseLGF();OLsetBackground('');return t;
}

// Makes table with caption and optional close link
function OLcontentCaption(txt,title,close){
var closing=(OLprintPI?OLprintCapLGF():''),closeevent='onmouseover',caption,t,cC='javascript:return '+OLfnRef
+(OLovertwoPI&&over==over2?'cClick2();':'cClick();');if(o3_closeclick)closeevent=(o3_closetitle?'title="'
+o3_closetitle+'" ':'')+'onclick';if(o3_capicon!=''&&o3_capicon.indexOf('<img')!=0)o3_capicon='<img src="'+o3_capicon
+'" /> ';if(close){closing+='<td align="right"><a href="'+cC+'" '+closeevent+'="'+cC+'"'+(o3_closefontclass?' class="'
+o3_closefontclass+'">':(OLns4?'><':'')+OLlgfUtil(0,1,'','a',o3_closecolor,o3_closefont,o3_closesize))+close+
(o3_closefontclass?'':(OLns4?OLlgfUtil(1,1,'','a'):''))+'</a></td>';}caption='<table id="overCap'
+(OLovertwoPI&&over==over2?'2':'')+'"'+OLwd(0)+' border="0" cellpadding="'+o3_captionpadding+'" cellspacing="0"'
+(o3_cgclass?' class="'+o3_cgclass+'"':o3_cgcolor+o3_cgbackground)+'><tr><td'+OLwd(0)+(o3_cgclass?' class="'
+o3_cgclass+'">':'>')+(o3_captionfontclass?'<div'+OLhL(1)+' class="'+o3_captionfontclass+'">':OLlgfUtil(0,1,'','div',
o3_capcolor,o3_captionfont,o3_captionsize))+o3_capicon+title+OLlgfUtil(1,1,'','div')+'</td>'+closing+'</tr></table>';
t=OLbgLGF()+(o3_capbelow?OLfgLGF(txt)+caption:caption+OLfgLGF(txt))+OLbaseLGF();OLsetBackground('');return t;
}

// For BACKGROUND and FULLHTML commands
function OLcontentBackground(txt,image,hasfullhtml){
var t;if(hasfullhtml){t=txt;}else{t='<table'+OLwd(1)+' border="0" cellpadding="0" '+'cellspacing="0" '+'height="'
+o3_height+'"><tr><td colspan="3" height="'+o3_padyt+'"></td></tr><tr><td width="'+o3_padxl+'"></td><td valign="top"'
+OLwd(2)+'>'+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+txt+OLlgfUtil(1,0,'','div')
+'</td><td width="'+o3_padxr+'"></td></tr><tr><td colspan="3" height="'+o3_padyb+'"></td></tr></table>';}
OLsetBackground(image);return t;
}

// LGF utilities
function OLbgLGF(){
return '<table'+OLwd(1)+o3_height+' border="0" cellpadding="'+o3_border+'" cellspacing="0"'+(o3_bgclass?' class="'
+o3_bgclass+'"':o3_bgcolor+o3_bgbackground)+'><tr><td>';
}
function OLfgLGF(t){
return '<table'+OLwd(0)+o3_height+' border="0" cellpadding="'+o3_textpadding+'" cellspacing="0"'+(o3_fgclass?' class="'
+o3_fgclass+'"':o3_fgcolor+o3_fgbackground)+'><tr><td valign="top"'+(o3_fgclass?' class="'+o3_fgclass+'"':'')+'>'
+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+t+(OLprintPI?OLprintFgLGF():'')
+OLlgfUtil(1,0,'','div')+'</td></tr></table>';
}
function OLlgfUtil(end,stg,tfc,ele,col,fac,siz){
if(end)return('</'+(OLns4?'font'+(stg?'></strong':''):ele)+'>');else return(tfc?'<div'+OLhL(1)+' class="'+tfc+'">':
((ele=='a'?'':'<')+(OLns4?(stg?'strong><':'')+'font color="'+col+'" face="'+OLquoteMultiNameFonts(fac)+'" size="'
+siz:(ele=='a'?'':ele)+' style="'+((ele=='div')?OLhL(0):'')+'color:'+col+(stg?';font-weight:bold':'')+';font-family:'
+OLquoteMultiNameFonts(fac)+';font-size:'+siz+';'+(ele=='span'?'text-decoration:underline;':''))+'">'));
}
function OLquoteMultiNameFonts(f){
var i,v,pM=f.split(',');for(i=0;i<pM.length;i++){v=pM[i];v=v.replace(/^\s+/,'').replace(/\s+$/,'');
if(/\s/.test(v) && !/['"]/.test(v)){v="\'"+v+"\'";pM[i]=v;}}return pM.join();
}
function OLbaseLGF(){
return ((o3_base>0&&!o3_wrap)?('<table width="100%" border="0" cellpadding="0" cellspacing="0"'+(o3_bgclass?' class="'
+o3_bgclass+'"':'')+'><tr><td height="'+o3_base+'"></td></tr></table>'):'')+'</td></tr></table>';
}
function OLwd(a){return(o3_wrap?'':' width="'+(!a?'100%':(a==1?o3_width:(o3_width-o3_padxl-o3_padxr)))+'"');}
function OLhL(s){if(!OLie5)return '';return(s?' style="overflow:auto;"':'overflow:auto;');}

// Loads image into the div.
function OLsetBackground(i){
if(i==''){if(OLns4)over.background.src=null;else{if(OLns6)over.style.width='';over.style.backgroundImage='none';}}
else{if(OLns4)over.background.src=i;else{if(OLns6)over.style.width=o3_width+'px';over.style.backgroundImage='url('+i+')';}}
}

/*
 HANDLING FUNCTIONS
*/
// Displays layer
function OLdisp(s){
if(OLmodalPI&&!o3_modalscroll)OLchkModal();if(!OLallowmove){if(OLshadowPI)OLdispShadow();if(OLiframePI)OLdispIfs();
OLplaceLayer();if(OLmodalPI&&o3_modalscroll)OLchkModal();if(OLndt)OLshowObject(over);
else OLshowid=setTimeout("OLshowObject(over)",1);OLallowmove=(o3_sticky||o3_nofollow)?0:1;}OLndt=0;if(s!="")self.status=s;
}

// Decides placement of layer.
function OLplaceLayer(){
var snp,X,Y,pgLeft,pgTop,pWd=o3_width,pHt,iWd=100,iHt=100,SB=0,LM=0,CX=0,TM=0,BM=0,CY=0,o=OLfd(),
nsb=(OLgek>=20010505&&!o3_frame.scrollbars.visible)?1:0;
if(!OLkht&&!OLop95&&o&&o.clientWidth)iWd=o.clientWidth;
else if(o3_frame.innerWidth){SB=Math.ceil(1.4*(o3_frame.outerWidth-o3_frame.innerWidth));
if(SB>20)SB=20;iWd=o3_frame.innerWidth;}
pgLeft=(OLie4&&!OLop95)?o.scrollLeft:o3_frame.pageXOffset;
if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow)SB=CX=5;else
if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowx){SB+=((o3_shadowx>0)?o3_shadowx:0);
LM=((o3_shadowx<0)?Math.abs(o3_shadowx):0);CX=Math.abs(o3_shadowx);}
if(o3_ref!=""||o3_fixx> -1||o3_relx!=null||o3_midx!=null){
if(o3_ref!=""){X=OLrefXY[0];if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow){
if(o3_refp=='UR'||o3_refp=='LR')X-=5;}
else if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowx){
if(o3_shadowx<0&&(o3_refp=='UL'||o3_refp=='LL'))X-=o3_shadowx;else
if(o3_shadowx>0&&(o3_refp=='UR'||o3_refp=='LR'))X-=o3_shadowx;}
}else{if(o3_midx!=null){
X=parseInt(pgLeft+((iWd-pWd-SB-LM)/2)+o3_midx);
}else{if(o3_relx!=null){
if(o3_relx>=0)X=pgLeft+o3_relx+LM;else X=pgLeft+o3_relx+iWd-pWd-SB;
}else{X=o3_fixx+LM;}}}
}else{
if(o3_hauto){
if(o3_hpos==LEFT&&OLx-pgLeft+OLifX<iWd/2&&OLx-pWd-o3_offsetx+OLifX<pgLeft+LM)o3_hpos=RIGHT;else
if(o3_hpos==RIGHT&&OLx-pgLeft+OLifX>iWd/2&&OLx+pWd+o3_offsetx+OLifX>pgLeft+iWd-SB)o3_hpos=LEFT;}
X=(o3_hpos==CENTER)?parseInt(OLx-((pWd+CX)/2)+o3_offsetx):
(o3_hpos==LEFT)?OLx-o3_offsetx-pWd:OLx+o3_offsetx;
if(o3_snapx>1){
snp=X % o3_snapx;
if(o3_hpos==LEFT){X=X-(o3_snapx+snp);}else{X=X+(o3_snapx-snp);}}X+=OLifX;}
if(!o3_nojustx&&X+pWd>pgLeft+iWd-SB)
X=iWd+pgLeft-pWd-SB;if(!o3_nojustx&&X-LM<pgLeft)X=pgLeft+LM;
pgTop=OLie4&&!OLop95?o.scrollTop:o3_frame.pageYOffset;
if(!OLkht&&!OLop95&&!nsb&&o&&o.clientHeight)iHt=o.clientHeight;
else if(o3_frame.innerHeight)iHt=o3_frame.innerHeight;
if(OLbubblePI&&o3_bubble)pHt=OLbubbleHt;else pHt=OLns4?over.clip.height:over.offsetHeight;
if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowy){TM=(o3_shadowy<0)?Math.abs(o3_shadowy):0;
if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow)BM=CY=5;else
BM=(o3_shadowy>0)?o3_shadowy:0;CY=Math.abs(o3_shadowy);}
if(o3_ref!=""||o3_fixy> -1||o3_rely!=null||o3_midy!=null){
if(o3_ref!=""){Y=OLrefXY[1];if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow){
if(o3_refp=='LL'||o3_refp=='LR')Y-=5;}else if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowy){
if(o3_shadowy<0&&(o3_refp=='UL'||o3_refp=='UR'))Y-=o3_shadowy;else
if(o3_shadowy>0&&(o3_refp=='LL'||o3_refp=='LR'))Y-=o3_shadowy;}
}else{if(o3_midy!=null){
Y=parseInt(pgTop+((iHt-pHt-CY)/2)+o3_midy);
}else{if(o3_rely!=null){
if(o3_rely>=0)Y=pgTop+o3_rely+TM;else Y=pgTop+o3_rely+iHt-pHt-BM;}else{
Y=o3_fixy+TM;}}}
}else{
if(o3_vauto){
if(o3_vpos==ABOVE&&OLy-pgTop+OLifY<iHt/2&&OLy-pHt-o3_offsety+OLifY<pgTop)o3_vpos=BELOW;else
if(o3_vpos==BELOW&&OLy-pgTop+OLifY>iHt/2&&OLy+pHt+o3_offsety+((OLns4||OLkht)?17:0)+OLifY>pgTop+iHt-BM)
o3_vpos=ABOVE;}Y=(o3_vpos==VCENTER)?parseInt(OLy-((pHt+CY)/2)+o3_offsety):
(o3_vpos==ABOVE)?OLy-(pHt+o3_offsety+BM):OLy+o3_offsety+TM;
if(o3_snapy>1){
snp=Y % o3_snapy;
if(pHt>0&&o3_vpos==ABOVE){Y=Y-(o3_snapy+snp);}else{Y=Y+(o3_snapy-snp);}}Y+=OLifY;}
if(!o3_nojusty&&Y+pHt+BM>pgTop+iHt)Y=pgTop+iHt-pHt-BM;if(!o3_nojusty&&Y-TM<pgTop)Y=pgTop+TM;
OLrepositionTo(over,X,Y);
if(OLshadowPI)OLrepositionShadow(X,Y);if(OLiframePI)OLrepositionIfs(X,Y);
if(OLns6&&o3_frame.innerHeight){iHt=o3_frame.innerHeight;OLrepositionTo(over,X,Y);}
if(OLscrollPI)OLchkScroll(X-pgLeft,Y-pgTop);
}

// Chooses body or documentElement
function OLfd(f){
var fd=((f)?f:o3_frame).document,fdc=fd.compatMode,fdd=fd.documentElement;
return (!OLop7&&fdc&&fdc!='BackCompat'&&fdd&&fdd.clientWidth)?fd.documentElement:fd.body;
}

// Gets location of REFerence object
function OLgetRefXY(r,d){
var o=OLgetRef(r,d),ob=o,rXY=[o3_refx,o3_refy],of;if(!o)return [null,null];if(OLns4){
if(typeof o.length!='undefined'&&o.length>1){ob=o[0];rXY[0]+=o[0].x+o[1].pageX;rXY[1]+=o[0].y+o[1].pageY;}else{
if((o.toString().indexOf('Image')!= -1)||(o.toString().indexOf('Anchor')!= -1)){rXY[0]+=o.x;rXY[1]+=o.y;}
else{rXY[0]+=o.pageX;rXY[1]+=o.pageY;}}}else{rXY[0]+=OLpageLoc(o,'Left');rXY[1]+=OLpageLoc(o,'Top');}
of=OLgetRefOffsets(ob);rXY[0]+=of[0];rXY[1]+=of[1];return rXY;
}

// Seeks REFerence by id
function OLgetRefById(l,d){
l=(l||'overDiv');d=(d||o3_frame.document);var j,r;if(d.getElementById)return d.getElementById(l);
if(OLie4&&d.all)return d.all[l];if(d.layers&&d.layers.length>0){if(d.layers[l])return d.layers[l];
for(j=0;j<d.layers.length;j++){r=OLgetRefById(l,d.layers[j].document);if(r)return r;}}return null;
}

// Seeks REFerence by name
function OLgetRefByName(l,d){
d=(d||o3_frame.document);var j,r,v=OLie4?d.all.tags('iframe'):OLns6?d.getElementsByTagName('iframe'):null;
if(typeof d.images!='undefined'&&d.images[l])return d.images[l];
if(typeof d.anchors!='undefined'&&d.anchors[l])return d.anchors[l];
if(v)for(j=0;j<v.length;j++)if(v[j].name==l)return v[j];if(d.layers&&d.layers.length>0)for(j=0;j<d.layers.length;j++){
r=OLgetRefByName(l,d.layers[j].document);if(r&&r.length>0)return r;else if(r)return [r,d.layers[j]];}return null;
}

// Gets layer vs REFerence offsets
function OLgetRefOffsets(o){
var c=o3_refc.toUpperCase(),p=o3_refp.toUpperCase(),W=0,H=0,pW=0,pH=0,of=[0,0];pW=(OLbubblePI&&o3_bubble)?
o3_width:OLns4?over.clip.width:over.offsetWidth;pH=(OLbubblePI&&o3_bubble)?OLbubbleHt:OLns4?
over.clip.height:over.offsetHeight;if((!OLop7)&&o.toString().indexOf('Image')!= -1){W=o.width;H=o.height;}
else if((!OLop7)&&o.toString().indexOf('Anchor')!= -1){c=o3_refc='UL';}else{W=(OLns4)?o.clip.width:o.offsetWidth;
H=(OLns4)?o.clip.height:o.offsetHeight;}if((OLns4||(OLns6&&OLgek))&&o.border){W+=2*parseInt(o.border);
H+=2*parseInt(o.border);}if(c=='UL'){of=(p=='UR')?[-pW,0]:(p=='LL')?[0,-pH]:(p=='LR')?[-pW,-pH]:[0,0];}else if(c=='UR'){
of=(p=='UR')?[W-pW,0]:(p=='LL')?[W,-pH]:(p=='LR')?[W-pW,-pH]:[W,0];}else if(c=='LL'){of=(p=='UR')?[-pW,H]:(p=='LL')?[0,H-pH]:
(p=='LR')?[-pW,H-pH]:[0,H];}else if(c=='LR'){of=(p=='UR')?[W-pW,H]:(p=='LL')?[W,H-pH]:(p=='LR')?[W-pW,H-pH]:[W,H];}return of;
}

// Gets x or y location of object
function OLpageLoc(o,t){
var l=0,s=o;while(o.offsetParent&&o.offsetParent.tagName.toLowerCase()!='html'){l+=o['offset'+t];o=o.offsetParent;}
l+=o['offset'+t];if(!OLop7)while(s=s.parentNode){if((s['scroll'+t]>0)&&s.tagName.toLowerCase()=='div')l-=s['scroll'+t];}
return l;
}

// Moves layer
function OLmouseMove(e){
var e=(e||event);OLcC=(OLovertwoPI&&over2&&over==over2?cClick2:cClick);OLx=(e.pageX||e.clientX+OLfd().scrollLeft);
OLy=(e.pageY||e.clientY+OLfd().scrollTop);if((OLallowmove&&over)&&(o3_frame==self||over==OLgetRefById()||(OLovertwoPI&&
over2==over&&over==OLgetRefById('overDiv2')))){OLplaceLayer();if(OLhidePI)OLhideUtil(0,1,1,0,0,0);}if(OLhover&&over&&
o3_frame==self&&OLcursorOff())if(o3_offdelay<1)OLcC();else{if(OLtimerid>0)clearTimeout(OLtimerid);
OLtimerid=setTimeout("OLcC()",o3_offdelay);}
}

// Capture mouse and chain other scripts.
function OLmh(){
var fN,f,j,k,s,mh=OLmouseMove,w=(OLns4&&window.onmousemove),re=/function[ ]*(\w*)\(/;OLdw=document;if(document.onmousemove||
w){if(w)OLdw=window;f=OLdw.onmousemove.toString();fN=f.match(re);if(!fN||fN[1]=='anonymous'||fN[1]=='OLmouseMove'){OLchkMh=0;
return;}if(fN[1])s=fN[1]+'(e)';else{j=f.indexOf('{');k=f.lastIndexOf('}')+1;s=f.substring(j,k);}s+=';OLmouseMove(e);';
mh=new Function('e',s);}OLdw.onmousemove=mh;if(OLns4)OLdw.captureEvents(Event.MOUSEMOVE);
}

/*
 PARSING
*/
function OLparseTokens(pf,ar){
var i,v,md= -1,par=(pf!='ol_'),p=OLpar,q=OLparQuo,t=OLtoggle;OLudf=(par&&!ar.length?1:0);
for(i=0;i<ar.length;i++){if(md<0){if(typeof ar[i]=='number'){OLudf=(par?1:0);i--;}
else{switch(pf){case 'ol_':ol_text=ar[i];break;default:o3_text=ar[i];}}md=0;}else{
if(ar[i]==INARRAY){OLudf=0;eval(pf+'text=ol_texts['+ar[++i]+']');continue;}
if(ar[i]==CAPARRAY){eval(pf+'cap=ol_caps['+ar[++i]+']');continue;}
if(ar[i]==CAPTION){q(ar[++i],pf+'cap');continue;}
if(Math.abs(ar[i])==STICKY){t(ar[i],pf+'sticky');continue;}
if(Math.abs(ar[i])==NOFOLLOW){t(ar[i],pf+'nofollow');continue;}
if(ar[i]==BACKGROUND){q(ar[++i],pf+'background');continue;}
if(Math.abs(ar[i])==NOCLOSE){t(ar[i],pf+'noclose');continue;}
if(Math.abs(ar[i])==MOUSEOFF){t(ar[i],pf+'mouseoff');continue;}
if(ar[i]==OFFDELAY){p(ar[++i],pf+'offdelay');continue;}
if(ar[i]==RIGHT||ar[i]==LEFT||ar[i]==CENTER){p(ar[i],pf+'hpos');continue;}
if(ar[i]==OFFSETX){p(ar[++i],pf+'offsetx');continue;}
if(ar[i]==OFFSETY){p(ar[++i],pf+'offsety');continue;}
if(ar[i]==FGCOLOR){q(ar[++i],pf+'fgcolor');continue;}
if(ar[i]==BGCOLOR){q(ar[++i],pf+'bgcolor');continue;}
if(ar[i]==CGCOLOR){q(ar[++i],pf+'cgcolor');continue;}
if(ar[i]==TEXTCOLOR){q(ar[++i],pf+'textcolor');continue;}
if(ar[i]==CAPCOLOR){q(ar[++i],pf+'capcolor');continue;}
if(ar[i]==CLOSECOLOR){q(ar[++i],pf+'closecolor');continue;}
if(ar[i]==WIDTH){p(ar[++i],pf+'width');continue;}
if(Math.abs(ar[i])==WRAP){t(ar[i],pf+'wrap');continue;}
if(ar[i]==WRAPMAX){p(ar[++i],pf+'wrapmax');continue;}
if(ar[i]==HEIGHT){p(ar[++i],pf+'height');continue;}
if(ar[i]==BORDER){p(ar[++i],pf+'border');continue;}
if(ar[i]==BASE){p(ar[++i],pf+'base');continue;}
if(ar[i]==STATUS){q(ar[++i],pf+'status');continue;}
if(Math.abs(ar[i])==AUTOSTATUS){v=pf+'autostatus';
eval(v+'=('+ar[i]+'<0)?('+v+'==2?2:0):('+v+'==1?0:1)');continue;}
if(Math.abs(ar[i])==AUTOSTATUSCAP){v=pf+'autostatus';
eval(v+'=('+ar[i]+'<0)?('+v+'==1?1:0):('+v+'==2?0:2)');continue;}
if(ar[i]==CLOSETEXT){q(ar[++i],pf+'close');continue;}
if(ar[i]==SNAPX){p(ar[++i],pf+'snapx');continue;}
if(ar[i]==SNAPY){p(ar[++i],pf+'snapy');continue;}
if(ar[i]==FIXX){p(ar[++i],pf+'fixx');continue;}
if(ar[i]==FIXY){p(ar[++i],pf+'fixy');continue;}
if(ar[i]==RELX){p(ar[++i],pf+'relx');continue;}
if(ar[i]==RELY){p(ar[++i],pf+'rely');continue;}
if(ar[i]==MIDX){p(ar[++i],pf+'midx');continue;}
if(ar[i]==MIDY){p(ar[++i],pf+'midy');continue;}
if(ar[i]==REF){q(ar[++i],pf+'ref');continue;}
if(ar[i]==REFC){q(ar[++i],pf+'refc');continue;}
if(ar[i]==REFP){q(ar[++i],pf+'refp');continue;}
if(ar[i]==REFX){p(ar[++i],pf+'refx');continue;}
if(ar[i]==REFY){p(ar[++i],pf+'refy');continue;}
if(ar[i]==FGBACKGROUND){q(ar[++i],pf+'fgbackground');continue;}
if(ar[i]==BGBACKGROUND){q(ar[++i],pf+'bgbackground');continue;}
if(ar[i]==CGBACKGROUND){q(ar[++i],pf+'cgbackground');continue;}
if(ar[i]==PADX){p(ar[++i],pf+'padxl');p(ar[++i],pf+'padxr');continue;}
if(ar[i]==PADY){p(ar[++i],pf+'padyt');p(ar[++i],pf+'padyb');continue;}
if(Math.abs(ar[i])==FULLHTML){t(ar[i],pf+'fullhtml');continue;}
if(ar[i]==BELOW||ar[i]==ABOVE||ar[i]==VCENTER){p(ar[i],pf+'vpos');continue;}
if(ar[i]==CAPICON){q(ar[++i],pf+'capicon');continue;}
if(ar[i]==TEXTFONT){q(ar[++i],pf+'textfont');continue;}
if(ar[i]==CAPTIONFONT){q(ar[++i],pf+'captionfont');continue;}
if(ar[i]==CLOSEFONT){q(ar[++i],pf+'closefont');continue;}
if(ar[i]==TEXTSIZE){q(ar[++i],pf+'textsize');continue;}
if(ar[i]==CAPTIONSIZE){q(ar[++i],pf+'captionsize');continue;}
if(ar[i]==CLOSESIZE){q(ar[++i],pf+'closesize');continue;}
if(ar[i]==TIMEOUT){p(ar[++i],pf+'timeout');continue;}
if(ar[i]==DELAY){p(ar[++i],pf+'delay');continue;}
if(Math.abs(ar[i])==HAUTO){t(ar[i],pf+'hauto');continue;}
if(Math.abs(ar[i])==VAUTO){t(ar[i],pf+'vauto');continue;}
if(Math.abs(ar[i])==NOJUSTX){t(ar[i],pf+'nojustx');continue;}
if(Math.abs(ar[i])==NOJUSTY){t(ar[i],pf+'nojusty');continue;}
if(Math.abs(ar[i])==CLOSECLICK){t(ar[i],pf+'closeclick');continue;}
if(ar[i]==CLOSETITLE){q(ar[++i],pf+'closetitle');continue;}
if(ar[i]==FGCLASS){q(ar[++i],pf+'fgclass');continue;}
if(ar[i]==BGCLASS){q(ar[++i],pf+'bgclass');continue;}
if(ar[i]==CGCLASS){q(ar[++i],pf+'cgclass');continue;}
if(ar[i]==TEXTPADDING){p(ar[++i],pf+'textpadding');continue;}
if(ar[i]==TEXTFONTCLASS){q(ar[++i],pf+'textfontclass');continue;}
if(ar[i]==CAPTIONPADDING){p(ar[++i],pf+'captionpadding');continue;}
if(ar[i]==CAPTIONFONTCLASS){q(ar[++i],pf+'captionfontclass');continue;}
if(ar[i]==CLOSEFONTCLASS){q(ar[++i],pf+'closefontclass');continue;}
if(Math.abs(ar[i])==CAPBELOW){t(ar[i],pf+'capbelow');continue;}
if(ar[i]==LABEL){q(ar[++i],pf+'label');continue;}
if(Math.abs(ar[i])==DECODE){t(ar[i],pf+'decode');continue;}
if(ar[i]==DONOTHING){continue;}
i=OLparseCmdLine(pf,i,ar);}}
if((OLfunctionPI)&&OLudf&&o3_function)o3_text=o3_function();
if(pf=='o3_')OLfontSize();
}
function OLpar(a,v){eval(v+'='+a);}
function OLparQuo(a,v){eval(v+"='"+OLescSglQt(a)+"'");}
function OLescSglQt(s){return s.toString().replace(/\\/g,"\\\\").replace(/'/g,"\\'");}
function OLtoggle(a,v){eval(v+'=('+v+'==0&&'+a+'>=0)?1:0');}
function OLhasDims(s){return /[%\-a-z]+$/.test(s);}
function OLfontSize(){
var i;if(OLhasDims(o3_textsize)){if(OLns4)o3_textsize="2";}else
if(!OLns4){i=parseInt(o3_textsize);o3_textsize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
if(OLhasDims(o3_captionsize)){if(OLns4)o3_captionsize="2";}else
if(!OLns4){i=parseInt(o3_captionsize);o3_captionsize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
if(OLhasDims(o3_closesize)){if(OLns4)o3_closesize="2";}else
if(!OLns4){i=parseInt(o3_closesize);o3_closesize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
if(OLprintPI)OLprintDims();
}
function OLdecode(){
var re=/%[0-9A-Fa-f]{2,}/,t=o3_text,c=o3_cap,u=unescape,d=!OLns4&&(!OLgek||OLgek>=20020826)&&typeof decodeURIComponent?
decodeURIComponent:u;if(typeof(window.TypeError)=='function'){if(re.test(t)){eval(new Array('try{','o3_text=d(t);',
'}catch(e){','o3_text=u(t);','}').join('\n'))};if(c&&re.test(c)){eval(new Array('try{','o3_cap=d(c);','}catch(e){',
'o3_cap=u(c);','}').join('\n'))}}else{if(re.test(t))o3_text=u(t);if(c&&re.test(c))o3_cap=u(c);}
}

/*
 LAYER FUNCTIONS
*/
// Writes to layer
function OLlayerWrite(t){
t+="\n";if(OLns4){over.document.write(t);over.document.close();}else if(typeof over.innerHTML!='undefined'){
if(OLieM)over.innerHTML='';over.innerHTML=t;}else{var range=o3_frame.document.createRange();range.setStartAfter(over);
var domfrag=range.createContextualFragment(t);while(over.hasChildNodes()){over.removeChild(over.lastChild);}
over.appendChild(domfrag);}if(OLovertwoPI&&over==over2)OLover2HTML=t;else OLoverHTML=t;
if(OLprintPI)over.print=o3_print?t:null;
}

// Makes object visible
function OLshowObject(o){
OLshowid=0;o=(OLns4)?o:o.style;if(((OLfilterPI)&&!OLchkFilter(o))||!OLfilterPI)o.visibility="visible";
if(OLshadowPI)OLshowShadow();if(OLiframePI)OLshowIfs();if(OLhidePI)OLhideUtil(1,1,0);
}

// Hides object
function OLhideObject(o){
if(OLshowid>0){clearTimeout(OLshowid);OLshowid=0;}if(OLtimerid>0)clearTimeout(OLtimerid);
if(OLdelayid>0)clearTimeout(OLdelayid);OLtimerid=0;OLdelayid=0;self.status="";o3_label=ol_label;
if(o3_frame!=self)o=OLgetRefById();if(o){if(o.onmouseover)o.onmouseover=null;if(OLscrollPI&&o==over)OLclearScroll();
if(OLdraggablePI)OLclearDrag();if(OLfilterPI)OLcleanupFilter(o);if(OLshadowPI)OLhideShadow();var os=(OLns4)?o:o.style;
if(((OLfilterPI)&&!OLchkFadeOut(os))||!OLfilterPI){os.visibility="hidden";if(!OLie55||(typeof ggOnChange=='undefined'&&
(!OLfilterPI||!o3_filter||o3_fadeout<0)))o.innerHTML='';}if(OLhidePI&&o==over)OLhideUtil(0,0,1);if(OLiframePI)OLhideIfs(o);}
}

// Moves layer
function OLrepositionTo(o,xL,yL){
o=(OLns4)?o:o.style;o.left=(OLns4?xL:xL+'px');o.top=(OLns4?yL:yL+'px');
}

// Handle NOCLOSE-MOUSEOFF
function OLoptMOUSEOFF(c){
if(!c)o3_close="";
over.onmouseover=function(){OLhover=1;if(OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}}
}
function OLcursorOff(){
var o=(OLns4?over:over.style),pHt=OLns4?over.clip.height:over.offsetHeight,left=parseInt(o.left),top=parseInt(o.top),
right=left+o3_width,bottom=top+((OLbubblePI&&o3_bubble)?OLbubbleHt:pHt);
if(OLx<left||OLx>right||OLy<top||OLy>bottom)return true;return false;
}

/*
 REGISTRATION
*/
function OLsetRunTimeVar(){
if(OLrunTime.length)for(var k=0;k<OLrunTime.length;k++)OLrunTime[k]();
}
function OLparseCmdLine(pf,i,ar){
if(OLcmdLine.length){for(var k=0;k<OLcmdLine.length;k++){var j=OLcmdLine[k](pf,i,ar);if(j>-1){i=j;break;}}}return i;
}
function OLregCmds(c){
if(typeof c!='string')return;var pM=c.split(',');pMtr=pMtr.concat(pM);
for(var i=0;i<pM.length;i++)eval(pM[i].toUpperCase()+'='+pmCnt++);
}
function OLregRunTimeFunc(f){
if(typeof f=='object')OLrunTime=OLrunTime.concat(f);else OLrunTime[OLrunTime.length++]=f;
}
function OLregCmdLineFunc(f){
if(typeof f=='object')OLcmdLine=OLcmdLine.concat(f);else OLcmdLine[OLcmdLine.length++]=f;
}

OLloaded=1;


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// This is not part of overlib, this was added for smileys
//document.getElementsByClassName = function(clsName) {
//	var retVal = new Array();
//	var elements = document.getElementsByTagName("*");
//	for (var i = 0;i < elements.length;i++) {
//		if (elements[i].className.indexOf(" ") >= 0) {
//			var classes = elements[i].className.split(" ");
//			for (var j = 0;j < classes.length;j++) {
//				if (classes[j] == clsName) {
//					retVal.push(elements[i]);
//				}
//			}
//		}
//		else if (elements[i].className == clsName) {
//			retVal.push(elements[i]);
//		}
//	}
//	return retVal;
//}

function addSmiley() {
//	var postBodyClass = (postBodyClass) ? postBodyClass : 'post-body';
//	var d = document.getElementsByClassName(postBodyClass);
	var d = document.getElementsByTagName('font');
	for (var i=0;i<d.length;i++) {

//1 :) and :-)
		d[i].innerHTML = d[i].innerHTML.replace(/:\)/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/1.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/\=\)/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/1.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/:-*\)/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/1.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//2 :( and :-(
		d[i].innerHTML = d[i].innerHTML.replace(/:\(/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/2.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/\=\(/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/1.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/:-*\(/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/2.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//3 ;) and ;-)
		d[i].innerHTML = d[i].innerHTML.replace(/\;\)/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/3.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//biggrin :D and :-D
		d[i].innerHTML = d[i].innerHTML.replace(/:D/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/biggrin.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//5a :-/ and :/ 
		d[i].innerHTML = d[i].innerHTML.replace(/:\/ /g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/5a.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/ :\//g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/5a.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/:\\/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/5a.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//ohyeah ;P
		d[i].innerHTML = d[i].innerHTML.replace(/\;P/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/ohyeah.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//80 :p and :-p
		d[i].innerHTML = d[i].innerHTML.replace(/:\p/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/10.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//pushpin Sticky
		d[i].innerHTML = d[i].innerHTML.replace(/\<b\>Sticky\<\/b\>/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/pushpin.gif" style="border:0; margin:0; padding:0;" id="new" onMouseOver="return overlib\(\'Sticky\'\)" onMouseOut="nd\(\)" /> ');
//^^ ^^ and ^,^ and ^.^
		d[i].innerHTML = d[i].innerHTML.replace(/\^\^ /g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/^^.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/ \^\^/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/^^.gif" style="border:0; margin:0; padding:0;" id="new" /> ');
//sick :X and :-X
		d[i].innerHTML = d[i].innerHTML.replace(/:-X/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/sick.gif" style="border:0; margin:0; padding:0;" id="new" onMouseOver="return overlib\(\':-X or :X\'\)" onMouseOut="nd\(\)" /> ');
		d[i].innerHTML = d[i].innerHTML.replace(/:X/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/sick.gif" style="border:0; margin:0; padding:0;" id="new" onMouseOver="return overlib\(\':-X or :X\'\)" onMouseOut="nd\(\)" /> ');
//angry1 :@ and :-@
		d[i].innerHTML = d[i].innerHTML.replace(/:@/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/angry1.gif" style="border:0; margin:0; padding:0;" id="new" onMouseOver="return overlib\(\':@ or :-@\'\)" onMouseOut="nd\(\)" /> ');
//devil :devil:
		d[i].innerHTML = d[i].innerHTML.replace(/:devil:/g, ' <img src="http://www.fenix-hyp.com/hypimg/md/v5/emotes/devil.gif" style="border:0; margin:0; padding:0;" id="new" onMouseOver="return overlib\(\':devil:\'\)" onMouseOut="nd\(\)" /> ');
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

if (location.pathname.match("/servlet/Forums") && (location.search.match("fenter") || location.search.match("fdispmsg") || location.search.match("lastmsg"))) {
        addLoadEvent(addSmiley);
}

if (location.pathname.match("/servlet/Player") && (location.search.match("Inbox"))) {
        addLoadEvent(addSmiley);
}

function checkAll(myform) {
	for (var i=0;i<myform.elements.length;i++) {
		var e = myform.elements[i];
		if ((e.name != 'checkall') && (e.type=='checkbox') && (!e.disabled) ) {
			e.checked = myform.checkall.checked;
		}
	}
}

function ComputeTotalAvgp(htmlForm) {
    var totalFleetAvgp = 0
    var totalArmyAvgp = 0

    for (var i=0; i < htmlForm.elements.length; ++i) {
        inputField = htmlForm.elements[i];
        inputId = inputField.id;
        var nbItems = parseInt(inputField.value);

        if (!isNaN(nbItems)) {
	        if (inputId.substring(0,4) == "army") {
	        	startAvgp = inputId.lastIndexOf("_");
	        	if (startAvgp >= 0) {
		            armyAvgp = parseInt(inputId.substring(startAvgp + 1));
		            totalArmyAvgp += nbItems * armyAvgp;
	        	}

	        } else if (inputId.substring(0,4) == "ship") {
	        	startAvgp = inputId.lastIndexOf("_");
	        	if (startAvgp >= 0) {
	        		fleetAvgp = parseInt(inputId.substring(startAvgp + 1));
	                totalFleetAvgp += nbItems * fleetAvgp;
	        	}
	        }
        }
    }

    var divFleet = document.getElementById('fleet_total_avgp');
    var divFleetValue = document.getElementById('fleet_total_avgp_value');
    var divArmy = document.getElementById('army_total_avgp');
    var divArmyValue = document.getElementById('army_total_avgp_value');

    if (totalFleetAvgp > 0) {
    	divFleetValue.innerHTML = numberFormat(totalFleetAvgp);
    	divFleet.style.display='block';
    } else {
    	divFleet.style.display='none';
    }

    if (totalArmyAvgp > 0) {
    	divArmyValue.innerHTML = numberFormat(totalArmyAvgp);
    	divArmy.style.display='block';
    } else {
    	divArmy.style.display='none';
    }
}

function numberFormat(numberToFormat) {
     var formatedNumber = "";

     tmpStr = "" + numberToFormat;

     if(tmpStr.length > 3) {
    	 while(tmpStr.length > 3) {
    		 formatedNumber = "," + tmpStr.substr(tmpStr.length - 3) + formatedNumber;
             tmpStr = tmpStr.substr(0,tmpStr.length - 3);
    	 }
    	 formatedNumber = tmpStr + formatedNumber;

     } else {
    	 formatedNumber = tmpStr;
     }

     return formatedNumber;
  }

  /**
 * HaS Hyperiums GFX toolpack
 *
 * By Nasga.
 */

/*!
 * jQuery JavaScript Library v1.4.1
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Mon Jan 25 19:43:33 2010 -0500
 */
(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",c.ready);
var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a){};return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]){};return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;){};g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);

jQuery.url=function(){var segments={};var parsed={};var options={url:window.location,strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};var parseUri=function(){str=decodeURI(options.url);var m=options.parser[options.strictMode?"strict":"loose"].exec(str);var uri={};var i=14;while(i--){uri[options.key[i]]=m[i]||""}uri[options.q.name]={};uri[options.key[12]].replace(options.q.parser,function($0,$1,$2){if($1){uri[options.q.name][$1]=$2}});return uri};var key=function(key){if(!parsed.length){setUp()}if(key=="base"){if(parsed.port!==null&&parsed.port!==""){return parsed.protocol+"://"+parsed.host+":"+parsed.port+"/"}else{return parsed.protocol+"://"+parsed.host+"/"}}return(parsed[key]==="")?null:parsed[key]};var param=function(item){if(!parsed.length){setUp()}return(parsed.queryKey[item]===null)?null:parsed.queryKey[item]};var setUp=function(){parsed=parseUri();getSegments()};var getSegments=function(){var p=parsed.path;segments=[];segments=parsed.path.length==1?{}:(p.charAt(p.length-1)=="/"?p.substring(1,p.length-1):path=p.substring(1)).split("/")};return{setMode:function(mode){strictMode=mode=="strict"?true:false;return this},setUrl:function(newUri){options.url=newUri===undefined?window.location:newUri;setUp();return this},segment:function(pos){if(!parsed.length){setUp()}if(pos===undefined){return segments.length}return(segments[pos]===""||segments[pos]===undefined)?null:segments[pos]},attr:key,param:param}}();

// If no console defined
if (typeof console == 'undefined') {
	var console = {};
	console.log = alert;
}

/**
 * Function numberFormat
 *
 * This method return a formated string from an integer
 * Exemple numberFormat(1000000,2,',','.') will return 1.000.000,00
 *
 * param  int  number
 * param  int  decimals
 * param  char dec_point
 * param  char thousands_sep
 * return string
 */
function numberFormat( number, decimals, dec_point, thousands_sep ) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

/**
 * Function log10
 *
 * Return the log10 of a value
 *
 * param	int		arg
 * return	int
 */
function log10 (arg) {
    return Math.log(arg)/Math.LN10;
}

var HyperiumsFormula = {
	/**
	 * Function getIncomePerExploits
	 *
	 * param  int activity
	 * param  int capacity
	 * param  int upkeep
	 * return int
	 */
	getIncomePerExploit:function(activity,capacity,upkeep) {
		return Math.round((capacity * (activity - upkeep))/capacity);
	},

	/**
	 * Get the invest for a civ level
	 *
	 * Math.ceil(Math.pow(10,6) * Math.pow(1.25,(civLevel-1)) - 1);
	 * Inv needed = 10^6* { [ 10^(log 1.25 * (civ -1)) ] - 1 }
	 * civ = 1 + log[1+(Inv/10^6)]/log(1.25)
	 *
	 * <DarkWanderer> civ = 1 + log[1+(Inv/10^6)]/log(1.25)
	 * Depending on the language you use log(x) could be log10(x) as well.
	 *
	 * bellow civ 60, 1 more civ level cost 100B
	 * civ60 = 522024357439
	 *
	 * param	int		civLevel
	 * return	int
	 */
	getInvestFromCiv:function(civLevel) {
		if(civLevel > 60) {
			return 522024357439+(civLevel-60);
		}
		return Math.ceil(Math.pow(10,6) * Math.pow(1.25,(civLevel-1)) - 1);
	},

	/**
	 * Get civ from investissment
	 *
	 * param	int		invest
	 * return	int
	 */
	getCivFromInvest:function(invest) {
		if(invest > 522024357439) {
			return 60+invest/100000000000
		}
		return 1 + log10 ( 1 + ( invest / Math.pow(10,6) )) / log10(1.25) ;
	}
}

var HyperiumsPlanetprod = {
	/**
	 * Servlet Url
	 */
	url:'Planetprod',

	/**
	 * Function getActiveExploitationsFromCurrentDocument
	 *
	 * This function return the number of active exploitation in a trade page.
	 *
	 * return int
	 */
	getActiveExploitationsFromCurrentDocument:function() {
		return jQuery("td :contains('Active exploitations ')").next('td').next('td').find('font').text();
	},

	/**
	 * Get UrlFromObject
	 *
	 * param	object	object
	 * return	string
	 */
	getUrlFromObject:function(object) {
		return jQuery(object.childNodes[0]).find('a:last').attr('href');
	},

	/**
	 * Function getTradeCapacityFromNode
	 *
	 * param  object node
	 * return string
	 */
	getTradeCapacityFromNode:function(node) {
	  return jQuery(node).find('td:last > font').text().split("/",1);
	},

	/**
	 * Function getTradeUpkeepFromNode
	 *
	 * param  object node
	 * return string
	 */
	getTradeUpkeepFromNode:function(node) {
	  if(jQuery(node).find("font[color=#ff4444]").text() != '') {
	    return jQuery(node).find("font[color=#ff4444]").text();
	  }
	  if(jQuery(node).find('font').html() != null && jQuery(node).find('font').html() != '') {
	    return jQuery(node).find('font').html().split('<br>',2)[1];
	  }
	  return '0';
	},

	/**
	 * Function getTradeActivityFromNode
	 *
	 * param  object node
	 * return string
	 */
	getTradeActivityFromNode:function(node) {
	  if(this.getTradeUpkeepFromNode(node)) {
	    return jQuery(node).find("font[color=#aaaa77]").text().replace(this.getTradeUpkeepFromNode(node),'');
	  }
	  if(jQuery(node).find('font').html() != '') {
	    return jQuery(node).find('font').html().split('<br>',1).toString();
	  }
	  return '0';
	},

	/**
	 * Function dropTrade
	 *
	 * param int planetId
	 * param int tradeId
	 * return void
	 */
	dropTrade:function(planetId,tradeId) {
		jQuery.post(this.url,{ planetid:planetId , tradeid:tradeId , confirmdrop:'' , droprel:'Drop trading relation' });
	}
}

var HyperiumsMaps = {
	/**
	 * Get the planet list from the map page
	 *
	 * param	int			x
	 * param	int			y
	 * param	int			r
	 * param	string		bh
	 * param	function	callback
	 * return	void
	 */
	getPlanetList:function(x,y,r,bh,callback) {
		data  = 'distance='+r;
		data += '&reqx='+x;
		data += '&reqy='+y;
		// If exclude bh is enable
		if(bh == '1') {
			data += '&excludeBH=1';
		}
		// Get the planetlist in ajax
		jQuery.post("Maps", data, function(response) {
			planetList = new Array();
			// Parse the response to avoid firefox overflow
			planetHtml = response.match(/<tr(.*?)<\/tr>/g);
			// For each line
			jQuery.each(planetHtml,function() {
				$line = jQuery(this.toString());
				// If the line look like a planet
				if($line.find('td[bgcolor=#333344]:not(td[align=center])').html() != null) {
					arTmp = new Array();
					// If the planet is bhed
					if($line.find('td:eq(0) img[src=/misc/BH.gif]').html() != null) {
						arTmp['bh'] = true;
					}
					url = jQuery($line).find('td:eq(0) a:first').attr('href');
					// If its link "Send a message to planet" try to parse the second link
					if(url == 'javascript:void(0);') {
						url = jQuery($line).find('td:eq(0) a:last').attr('href');
					}
					arTmp['id'] = jQuery.url.setUrl(url).param('planetid');
					arTmp['name'] = jQuery.trim(jQuery($line).find('td:eq(0)').text().replace('@ ',''));
					arTmp['tag'] = jQuery($line).find('td:eq(1)').text();
					// If there's not tag
					if(arTmp['tag'] == '-') {
					arTmp['tag'] = '[]';
					}
					arTmp['coords'] = jQuery($line).find('td:eq(2)').text();
					arTmp['civ'] = jQuery($line).find('td:eq(3)').text();
					arTmp['gov'] = jQuery($line).find('td:eq(4)').text();
					// If the gov is Hyp
					if(arTmp['gov'] == '- Hyp -') {
						arTmp['gov'] = 'Hyp.';
					}
					arTmp['distance'] = jQuery($line).find('td:eq(6)').text();
					arTmp['type'] = jQuery($line).find('td:eq(7)').text();
					// Manage the type image
					switch(arTmp['type']) {
						case 'Agro': arTmp['typeImg'] = '/planets/xmp_agro.gif'; break;
						case 'Techno': arTmp['typeImg'] = '/planets/xmp_techno.gif'; break;
						case 'Minero': arTmp['typeImg'] = '/planets/xmp_minero.gif'; break;
					}
					arTmp['activity'] = jQuery($line).find('td:eq(8)').text();
					// Add this planet to the list
					if(!planetList[arTmp['coords']]) {
						planetList[arTmp['coords']] = new Array();
					}
					planetList[arTmp['coords']].push(arTmp);
				}
			});
			// Call callback
			callback(x,y,r,planetList);
		});
	}
}

var HyperiumsPlayer = {}
var HyperiumsCash = {}
var HyperiumsPlanet = {}
var HyperiumsForums = {}
var HyperiumsHome = {}
var HyperiumsFloats = {
	/**
	 * Get the list of fleet on own planets
	 *
	 * param	function	callback
	 * return	void
	 */
	getOwnFleetList:function(callback) {
		jQuery.post('Floats?pagetype=local_fleets','',function(response) {
			fleetHtml = response.match(/<table(.*?)<font color=#AAAA77 face=verdana,arial size=1><BR clear=left><BR clear=left><\/font>/g);
			fleetList = new Array();
			jQuery.each(fleetHtml,function() {
				fleetList.push(jQuery(this.toString()));
			});
			callback(fleetList);
		});
	},

	/**
	 * Get the list of fleet on foreign planets
	 *
	 * param	function	callback
	 * return	void
	 */
	getForeignFleetList:function(callback) {
		jQuery.post('Floats?pagetype=foreign_fleets','',function(response) {
			fleetHtml = response.match(/<table(.*?)<font color=#AAAA77 face=verdana,arial size=1><BR clear=left><BR clear=left><\/font>/g);
			fleetList = new Array();
			jQuery.each(fleetHtml,function() {
				fleetList.push(jQuery(this.toString()));
			});
			callback(fleetList);
		});
	},

	/**
	 * Get the list of fleet moving
	 *
	 * param	function	callback
	 * return	void
	 */
	getMovingFleetList:function(callback) {
		jQuery.post('Floats?pagetype=moving_fleets','',function(response) {
			fleetHtml = response.match(/<tr><td width=220 rowspan=2>(.*?)<td colspan=3><BR>/g);
			fleetList = new Array();
			if(fleetHtml) {
				for(key = 0;key < fleetHtml.length;key++) {
					$fleet	= jQuery(fleetHtml[key]);
					if($fleet.find("font:contains('Moving from ')").html() != null) {
						planetName	= $fleet.find("font:contains('Moving from ') > b:first").text().split(' ',1).toString();
						avgp		= fleetHtml[key].match(/<font color=#AAAA77 face=verdana,arial size=1>(.*?)<\/td>/m)[1];
						if(fleetList[planetName] > 0) {
							fleetList[planetName] += Math.floor(getIntFromAvgp(avgp));
						} else {
							fleetList[planetName] = Math.floor(getIntFromAvgp(avgp));
						}
	 				} else if($fleet.find("td:contains('Moving from ')").html() != null) { //DG's new moving fleet page mods
	                                        planetName      = $fleet.find("td:contains('Moving from ') > b:first").text().split(' ',1).toString();
                                                avgp            = fleetHtml[key].match(/<font color=#AAAA77 face=verdana,arial size=1>(.*?)<\/td>/m)[1];
                                                if(fleetList[planetName] > 0) {
                                                        fleetList[planetName] += Math.floor(getIntFromAvgp(avgp));
                                                } else {
                                                        fleetList[planetName] = Math.floor(getIntFromAvgp(avgp));
                                                }
					}
				}
			}
			// CallBack
			callback(fleetList);
		});
	},

	/**
	 * Obtenir l'identifiant de la planete a partir du lien
	 *
	 * param	string	url
	 * return	int
	 */
	getPlanetIdFromLink:function(url) {
		return jQuery.url.setUrl(url).param('planetid')
	}
}
var HyperiumsPlanetfloats = {}
var HyperiumsTrading = {}
var HyperiumsPreferences = {}
var HyperiumsInfiltrations = {}
var HyperiumsPlanetinf = {}
var HyperiumsTechtree = {}

var ToolTrading = {
	/**
	 * Trade List
	 */
	tradeList:[],

	/**
	 * Useless relations Link
	 */
	linkUselessRelations:'',

	/**
	 * Drop Option
	 */
	dropOptions:'<input type="checkbox" id="dropAcceptedTrade" /><input type="checkbox" id="dropRequestedTrade" /><input type="checkbox" id="dropAllTrade" /><input type="checkbox" id="dropTpTrade" />',

	/**
	 * Sort trade list
	 *
	 * return	void
	 */
	sortTradeList:function() {
		// For each trade line
		this.getTradingRelationsTable().children().each(function(line) {
			// If lines equal 0 (table row title)
			if(line == 0) {
				jQuery(this).append('<td align="right" valign="middle" rowspan="2">Income per exploit</td>');
			} else if(line > 1) {
				// If line isn't a message
				if(this.childNodes.length > 2) {
					// If pro mode
					if(this.childNodes.length == 5) {
						capacity  = HyperiumsPlanetprod.getTradeCapacityFromNode(this.childNodes[0]);
						upkeep    = HyperiumsPlanetprod.getTradeUpkeepFromNode(this.childNodes[3]);
						activity  = HyperiumsPlanetprod.getTradeActivityFromNode(this.childNodes[3]);
					} else {
						capacity  = HyperiumsPlanetprod.getTradeCapacityFromNode(this.childNodes[1]);
						upkeep    = HyperiumsPlanetprod.getTradeUpkeepFromNode(this.childNodes[4]);
						activity  = HyperiumsPlanetprod.getTradeActivityFromNode(this.childNodes[4]);
					}
					url       = HyperiumsPlanetprod.getUrlFromObject(this);
					planetId  = jQuery.url.setUrl(url).param("planetid");
					tradeId   = jQuery.url.setUrl(url).param("tradeid");

					// Format numbers
					activity  = activity.replace(/\,/g,'');
					upkeep    = upkeep.replace(/\,/g,'');

					// If upkeep > 0 display the drop button
					dropButton = '';
					if (upkeep[0] == '(') {
						upkeep = 0;
					} else {
						dropButton += '<input type="submit" value="Drop" onclick="HyperiumsPlanetprod.dropTrade('+planetId+','+tradeId+'); jQuery(this).parents(\'tr:first\').remove();" />';
					}

					// Compute the income per exploits
					incomePerExploit = HyperiumsFormula.getIncomePerExploit(activity,capacity,upkeep);

					if (activity > 0) {
						jQuery(this).append('<td align="right" valign="top">'+numberFormat(incomePerExploit,0,',',',')+'<span style="display:none" class="activity">'+activity+'</span><span style="display:none" class="upkeep">'+upkeep+'</span><span style="display:none" class="incomePerExpoit">'+incomePerExploit+'</span><span style="display:none" class="capacity">'+capacity+'</span><br />'+dropButton+'</td>');
						ToolTrading.tradeList.push(jQuery(this).html());
					}
				} else if ( jQuery(this).find("a > font:contains(Display all useless trading relations)").text() != '' ) {
					ToolTrading.linkUselessRelations = jQuery(this).append('<td></td>').html();
				}
				// Remove the current node
				jQuery(this).remove();
			}
		});

		// Sort by incomePerExpoit
		this.tradeList.sort(this.sortTradePlanetList);

		// Exploits vars
		exploitNumber   = HyperiumsPlanetprod.getActiveExploitationsFromCurrentDocument();
		exploitCounter  = exploitNumber;
		exploitMessage  = false;

		// Inject sorted array
		for(key in this.tradeList) {
/*			if((exploitCounter < 0) && (exploitMessage == false)) {
				this.getTradingRelationsTable().append('<tr><td colspan="7"><font face="verdana,arial" color="#cccccc" size="2">The following trading relations bring no additional income, due to an insufficient number of exploitations...</font><br/><br/></td></tr>');
				exploitMessage = true;
			}
*/			exploitCounter -= jQuery(this.tradeList[key]).find('.capacity').text();
			this.getTradingRelationsTable().append('<tr>'+this.tradeList[key]+'</tr>');
		}
		this.getTradingRelationsTable().append('<tr>'+this.linkUselessRelations+'</tr>');
	},

	/**
	 * Get trading relation table
	 *
	 * return	object
	 */
	getTradingRelationsTable:function() {
		return jQuery("td :contains('Trading relations')").parent('table').next().next().children();
	},

	/**
	 * Function sortTradePlanetList
	 *
	 * This function compare two row and return the difference
	 *
	 * param  string r1
	 * param  string r2
	 * return int
	 */
	sortTradePlanetList:function(r1,r2) {
		return  jQuery(r2).find('.incomePerExpoit').text() - jQuery(r1).find('.incomePerExpoit').text();
	}
}

var ToolMaps = {
	/**
	 * Add tabs map
	 *
	 * return	void
	 */
	addMapsTabs:function() {
		this.getMapsTables().append(this.getHtmlMenu());
		this.setTabsButtons();
	},

	/**
	 * Set tabs buttons
	 *
	 * return	void
	 */
	setTabsButtons:function() {
		// Map fleet
		jQuery("#HaSMapFleet").click(function() {
			ToolMaps.getMapsTables().parents('table:last').nextAll('table , form').remove();
			ToolMaps.getMapsTables().parents('table:last').after(ToolMaps.getHtmlFleetTableParam());
			ToolMaps.getMapsTables().find('a').css('font-weight','normal');
			jQuery(this).css('font-weight','bold');
			return false;
		});
		// Display map action
		jQuery("#HaSMap").click(function() {
			ToolMaps.getMapsTables().parents('table:last').nextAll('table , form').remove();
			ToolMaps.getMapsTables().parents('table:last').after(ToolMaps.getHtmlTableParam());
			ToolMaps.getMapsTables().find('a').css('font-weight','normal');
			jQuery(this).css('font-weight','bold');
			return false;
		});
	},

	/**
	 * Function getHtmlMenu
	 * This function return the html menu
	 *
	 * return	string
	 */
	getHtmlMenu:function() {
		str  = '<tr>';
		str += '<td class="hc" width="119" valign="middle">';
		str += '<a class="submenu2" href="" id="HaSMap" style="display: block; width: 100%;">Map</a>';
		str += '</td>';
		str += '<td class="hc" width="119" valign="middle">';
		str += '<a class="submenu2" href="" id="HaSMapFleet" style="display: block; width: 100%;">Fleets</a>';
		str += '</td>';
		str += '<td width="5"></td>';
		str += '<td align="center" width="119" valign="middle">';
		str += '</td>';
		str += '<td align="center" width="119" valign="middle">';
		str += '</td>';
		str += '<td align="center" width="119" valign="middle">';
		str += '</td>';
		str += '</tr>';
		return str;
	},

	/**
	 * Function getHtmlFleetTableParam
	 * This function return the html form for a fleet map
	 *
	 * return	string
	 */
	getHtmlFleetTableParam:function() {
		str  = '<br />';
		str += '<table cellspacing="0" cellpadding="0" border="0" width="800">';
		str += '<tbody>';
		str += '<tr>';
		str += '<td width="100"></td>';
		str += '<td bgcolor="#000000" width="700" cellspacing="3" border="0">';
		str += '<table cellspacing="2" cellpadding="0" border="0" width="700">';
		str += '<tbody>';
		str += '<tr>';
		str += '<td width="700">';
		str += '<font face="verdana,arial" color="#aaaa77" size="2">';
		str += '<img border="0" src="/misc/point.gif" class="vc"/>';
		str += '&nbsp;Display planets within distance:';
		str += '<select id="HaSRange">';
		str += '<option selected="selected" value="1">1</option>';
		str += '<option value="2">2</option>';
		str += '<option value="3">3</option>';
		str += '<option value="4">4</option>';
		str += '<option value="5">5</option>';
		str += '<option value="6">6</option>';
		str += '<option value="7">7</option>';
		str += '<option value="8">8</option>';
		str += '<option value="9">9</option>';
		str += '<option value="10">10</option>';
		str += '</select>';
		str += '<input type="checkbox" id="HaSExcludeBh" value="1" class="checkbox"/>';
		str += '&nbsp;Exclude black holed planets</font>';
		str += '</td>';
		str += '</tr>';
		str += '<tr>';
		str += '<td width="700">';
		str += '<font face="verdana,arial" color="#aaaa77" size="2">';
		str += '<img border="0" src="/misc/point.gif" class="vc"/>';
		str += '&nbsp;Switch mode button. <input type="checkbox" id="HaSSwitchMode" value="1" class="checkbox"/>';
		str += '</font>';
		str += '</td>';
		str += '</tr>';
		str += '<tr>';
		str += '<td width="700">';
		str += '<font face="verdana,arial" color="#aaaa77" size="2">';
		str += '<img border="0" src="/misc/point.gif" class="vc"/>';
		str += '&nbsp;Center map on coord. (';
		str += '<input type="text" value="" maxlength="6" size="6" id="HaSCoordx"/>,';
		str += '<input type="text" value="" maxlength="6" size="6" id="HaSCoordy"/>) ';
		str += '<input type="button" value="OK" name="go" class="button" onclick="ToolMaps.displayFleetMap();"/>';
		str += '</font>';
		str += '</td>';
		str += '</tr>';
		str += '</tbody>';
		str += '</table>';
		str += '</td>';
		str += '</tr>';
		str += '</tbody>';
		str += '</table><br /><table id="HaSResult"></table><div id="postForum" style="color:#AAAA77;"></div>';
		return str;
	},

	/**
	 * Function getHtmlTableParam
	 * This function return the html form for a map
	 *
	 * return	string
	 */
	getHtmlTableParam:function() {
		str  = '<br />';
		str += '<table cellspacing="0" cellpadding="0" border="0" width="800">';
		str += '<tbody>';
		str += '<tr>';
		str += '<td width="100"></td>';
		str += '<td bgcolor="#000000" width="700" cellspacing="3" border="0">';
		str += '<table cellspacing="2" cellpadding="0" border="0" width="700">';
		str += '<tbody>';
		str += '<tr>';
		str += '<td width="700">';
		str += '<font face="verdana,arial" color="#aaaa77" size="2">';
		str += '<img border="0" src="/misc/point.gif" class="vc"/>';
		str += '&nbsp;Display planets within distance:';
		str += '<select id="HaSRange">';
		str += '<option selected="selected" value="1">1</option>';
		str += '<option value="2">2</option>';
		str += '<option value="3">3</option>';
		str += '<option value="4">4</option>';
		str += '<option value="5">5</option>';
		str += '<option value="6">6</option>';
		str += '<option value="7">7</option>';
		str += '<option value="8">8</option>';
		str += '<option value="9">9</option>';
		str += '<option value="10">10</option>';
		str += '</select>';
		str += '<input type="checkbox" id="HaSExcludeBh" value="1" class="checkbox"/>';
		str += '&nbsp;Exclude black holed planets</font>';
		str += '</td>';
		str += '</tr>';
		str += '<tr>';
		str += '<td width="700">';
		str += '<font face="verdana,arial" color="#aaaa77" size="2">';
		str += '<img border="0" src="/misc/point.gif" class="vc"/>';
		str += '&nbsp;Center map on coord. (';
		str += '<input type="text" value="" maxlength="6" size="6" id="HaSCoordx"/>,';
		str += '<input type="text" value="" maxlength="6" size="6" id="HaSCoordy"/>) ';
		str += '<input type="button" value="OK" name="go" class="button" onclick="ToolMaps.displayMap();"/>';
		str += '</font>';
		str += '</td>';
		str += '</tr>';
		str += '</tbody>';
		str += '</table>';
		str += '</td>';
		str += '</tr>';
		str += '</tbody>';
		str += '</table><br /><table id="HaSResult"></table><div id="debug"></div>';
		return str;
	},

	/**
	 * Display map
	 *
	 * return  void
	 */
	displayMap:function() {
		// Get requested coords & options
		coordX  = Math.floor(jQuery("#HaSCoordx").val());
		coordY  = Math.floor(jQuery("#HaSCoordy").val());
		coordR  = Math.floor(jQuery("#HaSRange").val());
		bh      = jQuery("#HaSExcludeBh:checked").val();
		// Get planetlist
		HyperiumsMaps.getPlanetList(coordX,coordY,coordR,bh,this.buildHtmlMap);
	},

	/**
	 * Display fleet map
	 *
	 * return	void
	 */
	displayFleetMap:function() {
		// Get requested coords & options
		coordX	= Math.floor(jQuery("#HaSCoordx").val());
		coordY	= Math.floor(jQuery("#HaSCoordy").val());
		coordR	= Math.floor(jQuery("#HaSRange").val());
		bh		= jQuery("#HaSExcludeBh:checked").val();
		// Get planetlist
		HyperiumsMaps.getPlanetList(coordX,coordY,coordR,bh,this.buildHtmlFleetMap);
	},

	/**
	 * Build an html map
	 *
	 * param	int		coordX
	 * param	int		coordY
	 * param	int		coordR
	 * param	array	planetList
	 * return	void
	 */
	buildHtmlMap:function(coordX,coordY,coordR,planetList) {
		// Empty last map
		jQuery("#HaSResult").empty();
		$table = jQuery("#HaSResult");
		// Build the map
		for(y=coordY+coordR;y>=coordY-coordR;y--) {
			htmlRow  = '<tr>';
			for(x=coordX-coordR;x<=coordX+coordR;x++) {
				htmlRow += '<td class="planetList">';
				htmlRow += '<strong>('+x+','+y+')</strong>';
				htmlRow += '<table>';
				key = '('+x+','+y+')';
				if(planetList[key]) {
					jQuery.each(planetList[key],function() {
						htmlRow += '<tr id="'+this['name']+'" ';
						if(this['bh'] == true) {
							htmlRow += 'class="planetBh"';
						}
						htmlRow += '>';
						htmlRow += '<td class="planetType"><img src="'+this['typeImg']+'" style="border:none;"/></td>';
						htmlRow += '<td class="planetName">'+this['name']+'</td>';
						jQuery("#debug").append(this['name']+',');
						htmlRow += '<td class="planetTag">'+this['tag']+'</td>';
						htmlRow += '<td class="planetGov">'+this['gov']+'</td>';
						htmlRow += '<td class="planetActivity">'+this['civ']+'</td>';
						htmlRow += '<td class="planetActivity">'+this['activity']+'</td>';
						htmlRow += '</tr>';
					});
				}
				htmlRow += '</table>';
				htmlRow += '</td>';
			}
			htmlRow += '</tr>';
			$table.append(htmlRow);
		}
		// Css
		jQuery(".planetList").css('height','70px');
		jQuery(".planetList").css('width','150px');
		jQuery(".planetList").css('vertical-align','top');
		jQuery(".planetList").css('border','1px solid #AAAA77');
		jQuery(".planetBh").children('td').css('color','#552222');
	},

	/**
	 * Display fleet information in the html map
	 *
	 * param	object	$fleet
	 * param	object	$html
	 */
	setFleetOnHtml:function(fleet) {
		$fleet = fleet;

		$html = jQuery("tr#"+HyperiumsFloats.getPlanetIdFromLink($fleet.find("a:first").attr('href')));

		// Link
		$html.find(".planetName").wrapInner('<a href="'+$fleet.find("a:first").attr("href")+'&perplayer=" onclick="window.open(this.href,\'HHaSExt\'); return false;"></a>');
		// Avgp
		if($fleet.find("td > font:contains('Space AvgP:')").html() != null) {
			$fleetDetail = $fleet.find("td > font:contains('Space AvgP:')").parent('td').parent('tr');
			avgP = $fleetDetail.find('td[valign=bottom]:first').text();
			avgP = avgP.split(' + ',2);
			ownAvgp = avgP[0].split('/',1).toString();
			allyAvgp = avgP[1];
			// Ally Fleet
			if($fleetDetail.find("td[bgcolor=#33aa44] > font[color=#ffffff]").html() != null) {
				allyAvgp = '<span style="background-color:#33aa44; color:#ffffff; font-weight: bold;">'+allyAvgp+'</span>';
			}
			if($fleetDetail.find("td[bgcolor=#4444cc] > font[color=#ffffff]").html() != null) {
				ownAvgp = '<span style="background-color:#4444cc; color:#ffffff; font-weight: bold;">'+ownAvgp+'</span>';
			}
			$html.find('.planetOwnAvgp').html(ownAvgp);
			$html.find('.planetAllyAvgp').html(allyAvgp);
		}
		// Nmy fleet
		if($fleet.find("td > font:contains('Enemy space AvgP:')").html() != null) {
			$fleetDetail = $fleet.find("td > font:contains('Enemy space AvgP:')").parent('td').parent('tr');
			nmyAvgp = $fleetDetail.find('td:last').text();
			if($fleetDetail.find("td[bgcolor=#bb2222] > font[color=#ffffff]").html() != null) {
				nmyAvgp = '<span style="background-color:#bb2222; color:#ffffff; font-weight: bold;">'+nmyAvgp+'</span>';
			}
			$html.find('.planetNmyAvgp').html(nmyAvgp);
		}
		// Ground Avgp
		// Nrj
		if($fleet.find("td[colspan=5] td:contains('Energy')").find('td:last').text() != null) {
			$html.find('.planetNrj').html($fleet.find("td[colspan=5] td:contains('Energy')").find('td:last').html());
		}
		// HG
		if($fleet.find("img[src=/misc/hypergate.gif]").html() != null) {
			$html.find('.planetHg').html('<img src="/misc/hypergate.gif"/>');
		}
		// Is neutral
		if($fleet.find("font:contains('[Neutral]')").html() != null) {
			$html.find('.planetTag').html('<font face="verdana,arial" color="#9988ff" size="2">[Neutral]</font>');
		}
		// Stasis
		if($fleet.find("font > b:contains('Stasis')").html() != null) {
			$html.find('.planetStasis').html('<img src="/misc/stasis_icon.gif"/>');
		}
		// Att/Def Status
		if(jQuery("#HaSSwitchMode:checked").val() == 1) {
			if($fleet.find("td > b > font:contains('Defending')").text() == 'Defending') {
				$html.find('.planetStatus').html('<input type="button" onclick="switchStatus(\''+$html.find(".planetId").text()+'\',\'Attack\');" value="Def" />');
			} else if($fleet.find("td > b > font:contains('Attacking')").text() == 'Attacking') {
				$html.find('.planetStatus').html('<input type="button" onclick="switchStatus(\''+$html.find(".planetId").text()+'\',\'Defend\');" value="Att" />');
			}
		}
		// Forum template
		$html.find(".planetType").wrapInner('<a href="#" onclick="addPlanetForum(\''+$html.find('.planetName').text()+'\');return false;" style="cursor:crosshair;"></a>').find('img').css('border','none');
	},

	/**
	 * Build an html fleet map
	 *
	 * param	int		coordX
	 * param	int		coordY
	 * param	int		coordR
	 * param	array	planetList
	 * return	void
	 */
	buildHtmlFleetMap:function(coordX,coordY,coordR,planetList) {
		// Empty last map
		jQuery("#HaSResult").empty();
		$table = jQuery("#HaSResult");
		// Build the map
		for(y=coordY+coordR;y>=coordY-coordR;y--) {
			htmlRow  = '<tr>';
			for(x=coordX-coordR;x<=coordX+coordR;x++) {
				htmlRow += '<td class="planetList">';
				htmlRow += '<strong>('+x+','+y+')</strong>';
				htmlRow += '<table>';
				key = '('+x+','+y+')';
				if(planetList[key]) {
					jQuery.each(planetList[key],function() {
						htmlRow += '<tr id="'+this['id']+'" ';
						if(this['bh'] == true) {
							htmlRow += 'class="planetBh"';
						}
						htmlRow += '>';
						htmlRow += '<td class="planetInfos" style="display:none;">';
						htmlRow += '<input type="hidden" name="planetId" value="'+this['id']+'" />';
						htmlRow += '</td>';
						htmlRow += '<td class="planetCoords" style="display:none;">('+x+','+y+')</td>';
						htmlRow += '<td class="planetGov" style="display:none;">'+this['gov']+'</td>';
						htmlRow += '<td class="planetType"><img src="'+this['typeImg']+'" /></td>';
						htmlRow += '<td class="planetName">'+this['name']+'</td>';
						htmlRow += '<td class="planetTag">'+this['tag']+'</td>';
						htmlRow += '<td class="planetOwnAvgp"></td>';
						htmlRow += '<td class="planetAllyAvgp"></td>';
						htmlRow += '<td class="planetNmyAvgp"></td>';
						htmlRow += '<td class="planetMovingAvgp"></td>';
						htmlRow += '<td class="planetStatus"></td>';
						htmlRow += '<td class="planetStasis"></td>';
						htmlRow += '<td class="planetHg"></td>';
						htmlRow += '<td class="planetNrj"></td>';
						htmlRow += '</tr>';
					});
				}
				htmlRow += '</table>';
				htmlRow += '</td>';
			}
			htmlRow += '</tr>';
			$table.append(htmlRow);
		}

		// Css
		jQuery(".planetList").css('height','70px');
		jQuery(".planetList").css('width','150px');
		jQuery(".planetList").css('vertical-align','top');
		jQuery(".planetList").css('border','1px solid #AAAA77');
		jQuery(".planetBh").children('td').css('color','#552222');
		jQuery(".planetOwnAvgp").css('color','#4444cc');
		jQuery(".planetAllyAvgp").css('color','#33aa44');
		jQuery(".planetNmyAvgp").css('color','#bb2222');
		jQuery(".planetMovingAvgp").css('color','#C0C0C0');
		
		//markHypsPlanets();
		//markDictPlanets();

		HyperiumsFloats.getOwnFleetList(ToolMaps.OwnFleetCallback);
	},

	OwnFleetCallback:function(FleetList) {
		for(key in FleetList) {
			ToolMaps.setFleetOnHtml(FleetList[key]);
		}
		HyperiumsFloats.getForeignFleetList(ToolMaps.ForeignFleetCallback);
	},

	ForeignFleetCallback:function(FleetList) {
		for(key in FleetList) {
			ToolMaps.setFleetOnHtml(FleetList[key]);
		}
		HyperiumsFloats.getMovingFleetList(ToolMaps.MovingFleetCallback);
	},

	MovingFleetCallback:function(FleetList) {
		// For each planet
		for(planetName in fleetList) {
			// If there more than 5M, build a span
			if(fleetList[planetName] >= 5000000) {
				jQuery("td.planetName:contains('"+planetName+"')").parent('tr').find(".planetMovingAvgp").html('<span style="background-color:#C0C0C0; color:#FFFFFF; font-weight: bold;">'+getAvgpFromInt(fleetList[planetName])+'</span>');
			} else {
				jQuery("td.planetName:contains('"+planetName+"')").parent('tr').find(".planetMovingAvgp").html(getAvgpFromInt(fleetList[planetName]));
			}
		}
		// HyperiumsFloats.getForeignFleetList(ToolMaps.ForeignFleetCallback);
	},

	addTradingButtons:function() {
		jQuery("form > table[width=900] > tbody > tr").each(function() {
			$line = jQuery(this);
			url = jQuery($line).find('td:eq(0) a:last').attr('href');
			planetId = jQuery.url.setUrl(url).param('planetid');
			targetId = jQuery.url.setUrl(url).param('otherplanetid');
			targetName = new String(jQuery.url.setUrl(url).param('pname'));
			html  = '<td style="width:60px;">';
			if(targetId) {
				html += '<input type="button" value="Trade" onclick="setTrade(\''+planetId+'\',\''+targetId+'\',\''+targetName.replace(/"/g,'')+'\'); removeTradeButton(this);" />';
			}
			html += '</td>';
			$line.append(html);
		});
	},

	addTradingOptions:function() {
		// Trading option
		$form = jQuery("form > table:first > tbody > tr > td > table > tbody");
		html  = '<tr>';
		html += '<td valign="center">';
		html += '<img class="vc" border="0" src="/misc/point.gif"/>';
		html += '&nbsp;<input type="button" value="Hide Agros" onclick="hideAgros();" />';
		html += '&nbsp;<input type="button" value="Hide Technos" onclick="hideTechnos();" />';
		html += '&nbsp;<input type="button" value="Hide Mineros" onclick="hideMineros();" />';
		html += '</td>';
		html += '</tr>';
		$form.append(html);
	},

	/**
	 * Obtenir le tableau de selection des map
	 *
	 * return	object
	 */
	getMapsTables:function() {
		return jQuery("tr > td > font:contains('Maps')").parent().parent().parent();
	}
}

var ToolCiv = {

	/**
	 * Get money invested
	 *
	 * return	int
	 */
	getMoneyInvested:function() {
		return jQuery("center:contains('Money invested so far: ') > b:first").text().replace(/\,/g,'');;
	},

	defineCivViewer:function() {
		jQuery("font:contains('growing to')").append(' <span style="color:#9988ff; font-weight: bold;" id="civViewer"></span>');
	},

	updateCiv:function(civ,percent) {
		jQuery("#civViewer").html('('+civ+' at '+percent+'%)');
	},

	setOnChange:function() {
		this.defineCivViewer();

		jQuery("input[name=incby]").keyup(function(){
			civ = HyperiumsFormula.getCivFromInvest(parseInt(jQuery(this).val())+parseInt(ToolCiv.getMoneyInvested()));
			console.log(civ);
			array = civ.toString().split('.');
			console.log(array);
			console.log(HyperiumsFormula.getInvestFromCiv(60));
			// console.log(parseInt(jQuery(this).val())+parseInt(ToolCiv.getMoneyInvested()));
			// console.log(HyperiumsFormula.getCivFromInvest(parseInt(jQuery(this).val())+parseInt(ToolCiv.getMoneyInvested())));
			// ToolCiv.displayCivReached(array[0],array[1]);
			ToolCiv.updateCiv(array[0], array[1].substring(0,2));
		});


	}
}

/**
 * Set the dict planets in gray
 *
 * return	void
 */
function markDictPlanets() {
	jQuery(".planetGov:contains('Dict.') > .planetName").css('color','#777777');
	jQuery(".planetGov:contains('Dict.') > .planetName a").css('color','#777777');
}
/**
 * Set the hyps planets in gray
 *
 * return      void
 */
function markHypsPlanets() {
        jQuery(".planetGov:contains('Hyp.') > .planetName").css('color','#333333 !important');
        jQuery(".planetGov:contains('Hyp.') > .planetName a").css('color','#333333 !important');
}


/**
 * Switch status (att/def) on a planet
 *
 * todo	put in the float object and set up the html stuff in a callback
 * param	int		id
 * param	string	mode
 * return	void
 */
function switchStatus(id,mode) {
	data	= 'planetid='+id
	switch(mode) {
		case 'Attack': data += '&switchattack=attack'; break;
		case 'Defend': data += '&switchdefend=defend'; break;
		default: return false; break;
	}

	jQuery.post('Floatorders',data,function() {
		$planet = jQuery("td.planetId:contains('"+id+"')").parent('tr');
		// Switch ally/nmy
		ally	= $planet.find('.planetAllyAvgp').html();
		nmy		= $planet.find('.planetNmyAvgp').html();
		$planet.find('.planetAllyAvgp').html(nmy);
		$planet.find('.planetNmyAvgp').html(ally);
		$planet.find('.planetAllyAvgp > span').css('background-color','#33aa44');
		$planet.find('.planetNmyAvgp > span').css('background-color','#bb2222');
		// Rebuild the new button
		switch(mode) {
			case 'Attack': $planet.find('.planetStatus').html('<input type="button" onclick="switchStatus(\''+id+'\',\'Defend\');" value="Att" />'); break;
			case 'Defend': $planet.find('.planetStatus').html('<input type="button" onclick="switchStatus(\''+id+'\',\'Attack\');" value="Def" />'); break;
		}
	});
}

/**
 * Add a planet status in the forum template output
 * Current template looks like : (x,y) Planet [Tag] - Dict / Demo / Auth - F: vs E: - On/Nrg @ - - hst (jj/mm)
 *
 * todo	use planetId !!!
 * param	string	name
 * return	void
 */
function addPlanetForum(name) {
	// Get jquery planet object
	$planet = jQuery(".planetName:contains('"+name+"')").parent('tr');
	// Coords
	text = $planet.find('.planetCoords').text()+' ';
	// Name
	text += name+' ';
	// Tag
	text += $planet.find('.planetTag').text()+' ';
	// Gov
	text += $planet.find('.planetGov').text()+' - ';
	// Friendly
	friendlyFleet = getIntFromAvgp($planet.find('.planetOwnAvgp').text());
	if(getIntFromAvgp($planet.find('.planetAllyAvgp').text()) > 0) {
		friendlyFleet = parseInt(friendlyFleet)+parseInt(getIntFromAvgp($planet.find('.planetAllyAvgp').text()));
	}
	// text += 'F: '+getAvgpFromInt(parseInt(getIntFromAvgp($planet.find('.planetOwnAvgp').text()))+parseInt(getIntFromAvgp($planet.find('.planetAllyAvgp').text())))+' ';
	text += 'F: '+getAvgpFromInt(friendlyFleet)+' ';
	// console.log(parseInt(getIntFromAvgp($planet.find('.planetOwnAvgp').text()))));
	// console.log($planet.find('.planetOwnAvgp').text());
	// console.log(getIntFromAvgp($planet.find('.planetAllyAvgp').text()));
	// console.log(parseInt(getIntFromAvgp($planet.find('.planetAllyAvgp').text())));
	// Nmy
	if($planet.find('.planetNmyAvgp').text() != '') {
		text += 'vs E: '+$planet.find('.planetNmyAvgp').text()+' ';
	}
	text += '- ';
	// Stasis
	if($planet.find('.planetStasis > img').html() != null) {
		text += 'ON/';
	} else {
		text += 'OFF/';
	}
	// Nrj
	if($planet.find('.planetNrj').text() != '') {
		text += $planet.find('.planetNrj').text().split('/',1).toString()+' ';
	} else {
		text +=  '? ';
	}
	text += '@ '+getServerTime();
	jQuery("#postForum").append(text+'<br />');
}

/**
 * Get server time
 *
 * return	string
 */
function getServerTime() {
	return jQuery("font:contains('Server time')").text().split(': ',2)[1].toString();
}

/**
 * Get int from avgp
 *
 * param	string		avgp
 * return	int
 */
function getIntFromAvgp(avgp) {
	if(avgp.match("([0-9.]+)K")) {
		return avgp.match("([0-9.]+)K")[1]*1000;
	}
	if(avgp.match("([0-9.]+)M")) {
		return avgp.match("([0-9.]+)M")[1]*1000000;
	}
	if(avgp.match("([0-9.]+)B")) {
		return avgp.match("([0-9.]+)B")[1]*1000000000;
	}
	return avgp;
}

/**
 * Get avgp from integer
 *
 * param	int		agvp
 * return	string
 */
function getAvgpFromInt(avgp) {
	if(avgp >= 1000000000) {
		return Math.round(avgp/100000000)/10+'B';
	} else if(avgp >= 1000000) {
		return Math.round(avgp/100000)/10+'M';
	} else if(avgp >= 1000) {
		return Math.round(avgp/100)/10+'K';
	}
	return avgp;
}

/**
 * Establish a new trade
 *
 * return	void
 */
function setTrade(planetId,targetId,targetName) {
	data = 'newtrade=Send request';
	data += '&setup=';
	data += '&transtype=0';
	data += '&tradeid=0';
	data += '&planetid='+planetId;
	data += '&otherplanetid='+targetId;
	data += '&otherplanetname='+targetName;
	jQuery.post('Planetprod',data);
}
function setTrade(planetId,targetId,targetName,exploits) {
        data = 'newtrade=Send request';
        data += '&setup=';
        data += '&transtype=0';
        data += '&tradeid=0';
        data += '&planetid='+planetId;
        data += '&otherplanetid='+targetId;
        data += '&otherplanetname='+targetName;
	data += '&='+exploits;
        jQuery.post('Planetprod',data);
}


/**
 * Remove the trade button/link
 *
 * param	object	oInput
 * return	void
 */
function removeTradeButton(oInput) {
	$link = jQuery(oInput).parent('td').parent('tr').find('td:eq(0) > a:last')
	planetName = $link.text();
	$link.remove();
	jQuery(oInput).parent('td').parent('tr').find('td:eq(0)').append(planetName);
	jQuery(oInput).remove();
}

/**
 * Hide mineros
 *
 * todo	improve the selector
 * return	void
 */
function hideMineros() {
	jQuery("tr > td:contains('Minero')").parent('tr').remove();
}

/**
 * Hide mineros
 *
 * todo	improve the selector
 * return	void
 */
function hideAgros() {
	jQuery("tr > td:contains('Agro')").parent('tr').remove();
}

/**
 * Hide mineros
 *
 * todo	improve the selector
 * return	void
 */
function hideTechnos() {
	jQuery("tr > td:contains('Techno')").parent('tr').remove();
}

/**
 * Get the html scouting form
 *
 * return	string
 */
function getScoutingForm() {
	str  = '<br />';
	str += '<br />';
	str += 'Coords : (';
	str += '<input type="text" value="" maxlength="6" size="6" id="HHasExtx" />,';
	str += '<input type="text" value="" maxlength="6" size="6" id="HHasExty" />) @ ';
	str += '<select id="HHasExtRange">';	
	str += '<option value="1" selected="selected">1</option>';
	str += '<option value="2">2</option>';
	str += '<option value="3">3</option>';
	str += '<option value="4">4</option>';
	str += '<option value="5">5</option>';
	str += '<option value="6">6</option>';
	str += '<option value="7">7</option>';
	str += '<option value="8">8</option>';
	str += '<option value="9">9</option>';
	str += '<option value="10">10</option>';
	str += '</select>';
	str += '<br />';
	str += 'Ratio : ';
	str += '<input type="text" value="0" maxlength="7" size="8" id="HHasExtCruiser"/>|';
	str += '<input type="text" value="0" maxlength="7" size="8" id="HHasExtDestroyer"/>|';
	str += '<input type="text" value="0" maxlength="7" size="8" id="HHasExtBomber" onkeyup="checkFormBombing();" />|';
	str += '<input type="text" value="0" maxlength="7" size="8" id="HHasExtScout" />|';
	str += '<input type="text" value="0" maxlength="7" size="8" id="HHasExtGas" onkeyup="checkFormGAutodrop();" />';
	str += '<br />';
	str += 'Mission : ';
	str += '<select id="HHasExtMission" onchange="checkFormBombing();"><option value="1">Defend</option><option value="0">Attack</option></select>';
	str += '&nbsp;<select id="HHasExtCamouflage"><option value="0">Camouflage off</option><option value="1">Camouflage on</option></select>';
	str += '&nbsp;<select id="HHasExtBombing" style="display:none;"><option value="0">no</option><option value="1">yes</option></select>';
	str += '&nbsp;<select id="HHasExtDropmode" style="display:none;"><option value="onorder">Drop on order</option><option value="auto">Auto drop at arrival</option></select>';
	str += '<br />';
	str += 'Exclude tags : <input type="text" value="" name="exclude_tag" id="HHasExtTags" /> (enter comma separated tags)';
	str += '<br />Don\'t send if there already fleet on the planet : <input type="checkbox" value="1" id="HHasExtCheckFleets" />';
	str += '<br />Don\'t send if there fleet flying to the planet : <input type="checkbox" value="1" id="HHasExtCheckMovingFleets" />';
	str += '<br />Don\'t send to hyperiums protectorate planets : <input type="checkbox" value="1" id="HHasExtCheckNoProts" />';
	str += '<br /><input class="button" type="button" value="Prepare launching" id="launchScouting" />';
	str += '<br />';
	str +='<div id="status"><span></span></div>';
	str +='<div id="display"></div>';
	return str;
}

/**
 * Get the planet list from the map page
 *
 * param	int			x
 * param	int			y
 * param	int			r
 * param	string		bh
 * param	function	callback
 * return	void
 */
function getPlanetList(x,y,r,callback) {
	displayStatus('getTarget','loading','Fetching targets...');

	// Prepare ajax datas
	data  = 'distance='+r;
	data += '&reqx='+x;
	data += '&reqy='+y;
	data += '&excludeBH=1';
	// Get the planetlist in ajax
	jQuery.post("Maps", data, function(response) {
		planetList = new Array();
		// Parse the response to avoid firefox overflow
		planetHtml = response.match(/<tr(.*?)<\/tr>/g);
		// For each line
		jQuery.each(planetHtml,function() {
			$line = jQuery(this.toString());
			// If the line look like a planet
			if($line.find('td[bgcolor=#333344]:not(td[align=center])').html() != null) {
				arTmp = new Array();
				url = jQuery($line).find('td:eq(0) a:first').attr('href');
				// If its link "Send a message to planet" try to parse the second link
				if(url == 'javascript:void(0);') {
					url = jQuery($line).find('td:eq(0) a:last').attr('href');
				}
				arTmp['id'] = jQuery.url.setUrl(url).param('planetid');
				arTmp['name'] = jQuery.trim(jQuery($line).find('td:eq(0)').text().replace('@ ',''));
				arTmp['tag'] = jQuery($line).find('td:eq(1)').text();
				// If there's not tag
				if(arTmp['tag'] == '-') {
					arTmp['tag'] = '[]';
				}
				arTmp['coords'] = jQuery($line).find('td:eq(2)').text();
				arTmp['civ'] = jQuery($line).find('td:eq(3)').text();
				arTmp['gov'] = jQuery($line).find('td:eq(4)').text();
				// If the gov is Hyp
				if(arTmp['gov'] == '- Hyp -') {
					arTmp['gov'] = 'Hyp.';
				}
				arTmp['distance'] = jQuery($line).find('td:eq(6)').text();
				arTmp['type'] = jQuery($line).find('td:eq(7)').text();
				// Manage the type image
				switch(arTmp['type']) {
					case 'Agro': arTmp['typeImg'] = '/planets/xmp_agro.gif'; break;
					case 'Techno': arTmp['typeImg'] = '/planets/xmp_techno.gif'; break;
					case 'Minero': arTmp['typeImg'] = '/planets/xmp_minero.gif'; break;
				}
				arTmp['activity'] = jQuery($line).find('td:eq(8)').text();
				// Add this planet to the list
				if(arTmp['tag'] != '[=H=]') {
					//if(arTmp['gov'] != 'Hyp.') {
						planetList.push(arTmp);
					//}
				}
			}
		});
		// Update status
		displayStatus('getTarget','complete',planetList.length+' targets found.');
		// Call callback
		callback(planetList);
	});
}

/**
 * Display the status
 *
 * param	string	statusName
 * param	string	statusLevel
 * param	string	statusText
 */
function displayStatus(statusName,statusLevel,statusText) {
	if(jQuery("#status > span."+statusName).html() != null) {
		jQuery("#status > span."+statusName).html('<img src="'+getStatusLevelImage(statusLevel)+'" alt="">&nbsp;'+statusText);
	} else {
		jQuery("#status").append('<span class="'+statusName+'"><img src="'+getStatusLevelImage(statusLevel)+'" alt="">&nbsp;'+statusText+'</span><br/>');
	}
}

/**
 * Get status image
 *
 * param	string	statusLevel
 * return	string
 */
function getStatusLevelImage(statusLevel) {
	switch(statusLevel) {
		case 'loading': return getDistantUrl()+'icons/loading.gif'; break;
		case 'complete': return getDistantUrl()+'icons/accept.png'; break;
		default: return getDistantUrl()+'icons/error.png'; break
	}
}

/**
 * Get distant url
 *
 * return	string
 */
function getDistantUrl() {
	return 'http://nasgagfx.darkwanderer.nl/';
}

/**
 * Get the list of fleet on own planets
 *
 * param	array	planetList
 * param	array	fleetList
 * param	array	ownFleetList
 * param	array	movingFleetList
 * return	void
 */
function getOwnFleetList(planetList,fleetList,ownFleetList,movingFleetList) {
	// Start status for fleets on planets
	displayStatus('getOwnFleets','loading','Fetching fleets on own planets...');
	jQuery.post('Floats?pagetype=local_fleets','',function(response) {
		fleetHtml = response.match(/<table(.*?)<font color=#AAAA77 face=verdana,arial size=1><BR clear=left><BR clear=left><\/font>/g);
		i = 0;
		jQuery.each(fleetHtml,function() {
			i++;
			$fleet	= jQuery(this.toString());
			ownFleetList[$fleet.find("a:first").text()] = true;
		});
		displayStatus('getOwnFleets','complete',i+' fleets on own planets found.');
		getForeignFleetList(planetList,fleetList,ownFleetList,movingFleetList);
	});
}

/**
 * Get the list of fleet on foreign planets
 *
 * param	array	planetList
 * param	array	fleetList
 * param	array	ownFleetList
 * param	array	movingFleetList
 * return	void
 */
function getForeignFleetList(planetList,fleetList,ownFleetList,movingFleetList) {
	displayStatus('getForeignFleets','loading','Fetching fleets on foreign planets...');
	jQuery.post('Floats?pagetype=foreign_fleets','',function(response) {
		fleetHtml = response.match(/<table(.*?)<font color=#AAAA77 face=verdana,arial size=1><BR clear=left><BR clear=left><\/font>/g);
		i = 0
		jQuery.each(fleetHtml,function() {
			i++;
			$fleet	= jQuery(this.toString());
			ownFleetList[$fleet.find("a:first").text()] = true;
		});

		// Complete status
		displayStatus('getForeignFleets','complete',i+' fleets on foreign planets found.');

		if(jQuery("#HHasExtCheckMovingFleets:checked").val() == 1) {
			getMovingFleetList(planetList,fleetList,ownFleetList,new Array());
		} else {
			buildHtmlScouting(planetList,fleetList,ownFleetList,new Array());
		}
	});
}

/**
 * Get the list of fleet moving
 *
 * param	array	planetList
 * param	array	fleetList
 * param	array	ownFleetList
 * param	array	movingFleetList
 * return	void
 */
function getMovingFleetList(planetList,fleetList,ownFleetList,movingFleetList) {
	displayStatus('getMovingFleets','loading','Fetching moving fleets...');
	jQuery.post('Floats?pagetype=moving_fleets','',function(response) {
		fleetHtml = response.match(/<tr(.*?)<\/tr>/g);
		i = 0;
		for(key = 0;key < fleetHtml.length;key++) {
			$fleet	= jQuery(fleetHtml[key]);
			if($fleet.find("font:contains('Moving from ')").html() != null) {
				i++;
				planetName = $fleet.find("font:contains('Moving from ') > b:first").text().split(' ',1).toString();
				movingFleetList[planetName] = true;
			} else if($fleet.find("td:contains('Moving from ')").html() != null) {
                                i++;
                                planetName = $fleet.find("td:contains('Moving from ') > b:first").text().split(' ',1).toString();
                                movingFleetList[planetName] = true;
                        }
		}
		displayStatus('getMovingFleets','complete',i+' moving fleets found.');
		buildHtmlScouting(planetList,fleetList,ownFleetList,movingFleetList)
	});
}

/**
 * Get current page
 *
 * return	string
 */
function getCurrentPageUrl() {
  return location.href;
}

/**
 * Get current planet id
 *
 * return	string
 */
function getCurrentPlanetId() {
  return jQuery.url.setUrl(getCurrentPageUrl()).param('planetid');
}

/**
 * Get fleet list
 *
 * param	array	planetList
 * return	void
 */
function getFleetList(planetList) {
	displayStatus('getFleets','loading','Fetching fleets available...');

	cruisers	= jQuery("#HHasExtCruiser").val();
	destroyers	= jQuery("#HHasExtDestroyer").val();
	bombers		= jQuery("#HHasExtBomber").val();
	scouts		= jQuery("#HHasExtScout").val();
	gas			= jQuery("#HHasExtGas").val();
	fleetList	= new Array();
	jQuery.post(getCurrentPageUrl(),'',function(response) {
		$fleet = jQuery(response);
		$fleet.find("td:contains('Fleets management') table tbody tr:gt(0)").each(function() {
			// Check if fleet isn't n/a
			if(jQuery(this).find("td:eq(8) > font:contains('N/A:') > b").text() == '') {
				arTmp				= new Array();
				url					= jQuery(this).find('td:eq(0) a').attr('href');
				arTmp['id'] 		= jQuery.url.setUrl(url).param('fleetid');
				arTmp['cruisers']	= jQuery(this).find('td:eq(2)').text();
				arTmp['destroyers'] = jQuery(this).find('td:eq(3)').text();
				arTmp['bombers']	= jQuery(this).find('td:eq(4)').text();
				arTmp['scouts']		= jQuery(this).find('td:eq(5)').text();
				arTmp['gas']		= jQuery(this).find('td:eq(7)').text();
				// Seek only fleet equal to the requested ratio
				if(arTmp['cruisers'] == cruisers && arTmp['destroyers'] == destroyers && arTmp['bombers'] == bombers && arTmp['scouts'] == scouts && arTmp['gas'] == gas) {
					fleetList.push(arTmp);
				}
			}
		});

		displayStatus('getFleets','complete',fleetList.length+' fleets found.');

		if(jQuery("#HHasExtCheckFleets:checked").val() == 1) {
			getOwnFleetList(planetList,fleetList,new Array(),new Array());
		} else if(jQuery("#HHasExtCheckMovingFleets:checked").val() == 1) {
			getMovingFleetList(planetList,fleetList,new Array(),new Array());
		} else {
			buildHtmlScouting(planetList,fleetList,new Array(),new Array());
		}
	});
}

/**
 * Build the html table and display it
 *
 * param	array	planetList
 * param	array	fleetList
 * param	array	ownFleetList
 * param	array	movingFleetList
 * return	void
 */
function buildHtmlScouting(planetList,fleetList,ownFleetList,movingFleetList) {
	// Status
	displayStatus('result','loading','Building result...');

	// Get params
	mission		= jQuery("#HHasExtMission").val();
	camouflage	= jQuery("#HHasExtCamouflage").val();
	bombing		= jQuery("#HHasExtMission").val();
	drop		= jQuery("#HHasExtDropmode").val();
	fleetKey	= 0;
	tags		= jQuery("#HHasExtTags").val().split(',');
	nohyps		= jQuery("#HHasExtCheckNoProts:checked").val()==1?true:false;

	excludeTag  = new Array();
	for(key = 0;key < tags.length; key++) {
		excludeTag[tags[key]] = true;
	}
	sourceId	= getCurrentPlanetId();
	fleetLength	= fleetList.length;
	$display	= jQuery("#display").empty();
	$display.append('<table id="scoutingForm" cellspacing="1" cellpadding="0" border="0" bgcolor="#333344"></table>');
	$scoutingForm = jQuery("#scoutingForm");
	i = 0;
	for(key = 0;key < planetList.length; key++) {
		if(excludeTag[planetList[key]['tag']] != true) {
			i++;
			html  = '<tr id="'+planetList[key]['name']+'">';
			html += '<td>'+planetList[key]['coords']+'</td>';
			html += '<td>'+planetList[key]['name']+'</td>';
			html += '<td>'+planetList[key]['tag']+'</td>';
			html += '<td>'+planetList[key]['gov']+'</td>';
			html += '<td>'+planetList[key]['activity']+'</td>';
			html += '<td>';
			if((planetList[key]['gov']=='Hyp.')&&nohyps) {
				html += '<strong>Hyps protectorate</strong>';
			}
			else if(ownFleetList[planetList[key]['name']]) {
				html += '<strong>Fleets are already here</strong>';
			}
			else if(movingFleetList[planetList[key]['name']]) {
				html += '<strong>Fleets in travel</strong>';
			}
			else if(fleetList[fleetKey]) {
				html += '<input type="button"value="Send" onclick="sendFleet(\'';
				html += sourceId+'\',\'';
				html += planetList[key]['id']+'\',\'';
				html += planetList[key]['name']+'\',\'';
				html += fleetList[fleetKey]['id']+'\',\'';
				html += fleetLength+'\',\'';
				html += mission+'\',\'';
				html += camouflage+'\',\'';
				html += bombing+'\',\'';
				html += drop+'\'); jQuery(this).hide();"/>';
				fleetKey++;
			}
			html += '</td>';
			html += '</tr>';
			$scoutingForm.append(html);
		}
	}
	$scoutingForm.find('tr:even').css('background-color','#000000');
	$scoutingForm.find('tr:odd').css('background-color','#222233');
	// Complete status
	displayStatus('result','complete',i+' targets found for launch.');
}

/**
 * Send a fleet
 *
 * param	int		sourceId
 * param	int		targetId
 * param	string	targetName
 * param	int		fleetId
 * param	int		fleetLenght
 * param	int		mission
 * param	int		camouflage
 * param	int		bombing
 * param	string	drop
 * return	void
 */
function sendFleet(sourceId,targetId,targetName,fleetId,fleetLenght,mission,camouflage,bombing,drop) {
	// Prepare ajax datas
	data  = 'planetid='+sourceId;
	data += '&targetid='+targetId;
	data += '&targetname='+targetName;
	data += '&fleet0='+fleetId;
	data += '&nbfleets='+fleetLenght;
	data += '&mission='+mission;
	data += '&camouflage='+camouflage;
	data += '&bombing='+bombing;
	data += '&dropmode='+drop;
	data += '&launch=';
	data += '&movefleets=Launch Fleet';
	// Send the post request
	jQuery.post("Floatorders",data);
}

/**
 * Launch scouting
 *
 * return	void
 */
function launchScouting() {
	// Get requested coords
	x  = Math.floor(jQuery("#HHasExtx").val());
	y  = Math.floor(jQuery("#HHasExty").val());
	r  = Math.floor(jQuery("#HHasExtRange").val());
	// Empty the status
	jQuery("#status").empty();
	// Empty the display
	jQuery("#display").empty();
	getPlanetList(x,y,r,getFleetList);
}

/**
 * Check auto drop
 * Show auto drop select only if there carried armies
 *
 * return	void
 */
function checkFormGAutodrop() {
	if(jQuery("#HHasExtGas").val() > 0) {
		jQuery("#HHasExtDropmode").show();
	}
	else {
		jQuery("#HHasExtDropmode").hide();
	}
}

/**
 * Check bombing
 * Show bombing select only if there bombers
 *
 * return	void
 */
function checkFormBombing() {
	if(jQuery("#HHasExtBomber").val() > 0 && jQuery("#HHasExtMission").val() == 0) {
		jQuery('#HHasExtBombing').show();
	}
	else {
		jQuery('#HHasExtBombing').hide();
	}
}

function changeFleetlinks() {
        $("a[href*='Planetfloats']").attr("href", function() { return this.href + '&perplayer='; });
}

function removeInfil90s() {
//        $("font:contains('90% /')").parent('td').parent('tr').remove();
//	$("font:contains('Captive')").filter(function(index) {  return $(this).text()=='Captive'; }).parent('td').parent('tr').remove();
        $('td[class=hc]:contains("90% /")').filter(function(index) {  return $(this).text().substr(0,6)=='90% / '; }).parent().remove();
        $("td:contains('Captive')").filter(function(index) {  return $(this).text()=='Captive'; }).parent('tr').remove();
}

function prefill90percent() {
	$("select[name*=securitylevel] option[text*=90%]").attr("selected", true);
}

function startInfil(sourceId,targetId,security) {
        // Prepare ajax datas
        data  = 'planetid='+sourceId;
        data += '&infplanetid='+targetId;
        data += '&securitylevel='+security;
        data += '&newinfiltr=';
        // Send the post request
        jQuery.post("Planetinf",data);
}

function BuildNewInfilTable() {
	jQuery("#Blaat").empty();
	jQuery("#Blaat").append('<table id="infilForm" cellspacing="1" cellpadding="0" border="0" bgcolor="#333344"><tr><td colspan="2"><strong>Start the infils below and press Cancel when done</strong></td></tr></table>');
	
	security = '90';
	sourceId = jQuery("input[name=planetid]").attr("value");

	$oInfil = jQuery("#infilForm");

	//get array with planetname and id to infil
	jQuery("select[name=infplanetid]").children().each(function() {
//			arTmp['planetname'] = this.text();
//			arTmp['planetid'] = this.value();
			html  = '<tr>';
			html += '<td>' + this.text + '</td>';		
			html += '<td><input type="button" value="Start" onclick="startInfil(\'';
                                html += sourceId +'\',\'';
                                html += this.value +'\',\'';
                                html += security +'\'); jQuery(this).hide();"/></td>';
			html += '</tr>';
			$oInfil.append(html);
		})	
	
	//remove old inf table
//	jQuery("form").parent().find("font").remove();
//	jQuery("form").remove();
}

/**
 * Sort infiltrations table
 *
 * return      object
*/
function SortInfilTable() {
        $oInfilTable = jQuery("td :contains('Infiltrated planet')").parent('table');
	
	//loop over the number of childre
	coordpatt=/[0-9,-]+/;
//	for(infils=0;infils<$oInfilTable.length;infils++){		
		//find the largest y smaller than MinY
	change = true;
	sorts = 0;
	while (change == true) {
		change = false;
		firstvalrow = true;
	        $oInfilTable.find('tr').each(function(){
//			$thisrow = $(this);
			LocYStr = $(this).find("font:contains('@')");
			if ((LocYStr!=null)&&(LocYStr.length!=0)) {
				LocY = Number(LocYStr.text().split(',',2)[1].match(coordpatt));
				//check if this is the first row with a value for y
				if (firstvalrow) {
					firstvalrow = false;
					PrevY = LocY;
				}			
				if (LocY > PrevY) {
//					$(this).parent().prepend('<tr>'+ $(this).html()+ '</tr>');
					$oInfilTable.prepend('<tr>'+$(this).html()+'</tr');
					$(this).remove();					
					change = true;
					sorts++;
				} else {
					PrevY = LocY;
				}
			}
		})
	}
	$oInfilTable.prepend('<tr><td colspan="4">Number of sorts: '+sorts+'</tr>');	
//	}
}
/**
 * Sort infiltrations table
 *
 * return      object
*/
function FastSortInfilTable() {
        $oInfilTable = jQuery("td :contains('Infiltrated planet')").parent('table');
	$oNewInfilTable = jQuery("td :contains('Infiltrated planet')").parent('table').parent().append('<table id="sortedinf" width="600" cellspacing="1" cellpadding="0" border="0"></table>');
	
	$oInfilTable.addClass('OldInfilTable');
        
        //move table headers to new table
        $(".OldInfilTable tr:contains('Infiltrations to')").each(function(){
                $("#sortedinf").append('<tr>'+$(this).html()+'</tr>');
                $(this).remove();
        });
        $(".OldInfilTable tr:contains('Infiltrated planet')").each(function(){
                $("#sortedinf").append('<tr bgcolor="#333333">'+$(this).html()+'</tr>');
                $(this).remove();
        });

        coordpatt=/[0-9,-]+/;               
        change = true;
        sorts = 0;
        while (change == true) {
                change = false;
                firstvalrow = true;
		//find maxy
		$('.OldInfilTable tr').each(function(){
			LocYStr = $(this).find('td:eq(0)').find("font:contains(',')");
                        if ((LocYStr!=null)&&(LocYStr.length!=0)) {
                                LocY = LocYStr.text().split(',',2)[1].match(coordpatt);
				if (LocY!=null) {	
					LocY = Number(LocY);
	                                //check if this is the first row with a value for y
        	                        if (firstvalrow) {
                	                        firstvalrow = false;
                        	                MaxY = LocY;
                                	}
	                                if (LocY >= MaxY) {
        	                                change = true;
						MaxY = LocY;                                   
                        	        } 
				}
                        }
                });
                //now find that one again and move it to the top of our new table
		if (change) {
        	        $('.OldInfilTable tr').each(function(){
                        	LocYStr = $(this).find('td:eq(0)').find("font:contains(',')");
	                        if ((LocYStr!=null)&&(LocYStr.length!=0)) {
        	                        LocY = LocYStr.text().split(',',2)[1].match(coordpatt);                	               
					if (LocY!=null) {
						LocY = Number(LocY);
	        	                        if (LocY == MaxY) {
        	                	          	$("#sortedinf").append('<tr>'+$(this).html()+'</tr>');						
							$(this).remove();
                        	                	sorts++;
						}
	                                }
        	                }
                	});
		}		
 
        }
	//move all remaining infils (already sorted so don't trigger) to the new table
        $oInfilTable.find('tr').each(function(){
                LocYStr = $(this).find('td:eq(0)').find("font:contains(',')");
                if ((LocYStr!=null)&&(LocYStr.length!=0)) {
                        $("#sortedinf").append('<tr>'+$(this).html()+'</tr>');
                        $(this).remove();
                        sorts++;
               }
        });	
        $oInfilTable.prepend('<tr><td colspan="4">Number of sorts: '+sorts+'</tr>');
}



function upcomingTicks(element) { // start ticks object
    // based Hyperiums Time Countdown Script  v1.22 written by thrillir
    this.tick;

    startTimer = function () { 
        tick = new Array();
        today = new Date();  
        // ctime=today.getUTCHours()*3600+today.getUTCMinutes()*60+today.getUTCSeconds();
	STstring = getServerTime().split(' ')[1];
	ctime = Number(STstring.split(':')[0])*3600 + Number(STstring.split(':')[1])*60 + Number(STstring.split(':')[2]);    
        setTicks(ctime,8,6*60+56,'Cash');
        setTicks(ctime,1,47,'Fleet Build.');
        setTicks(ctime,1,42,'Counter Infil. + Tech + Scans');
        setTicks(ctime,1,40,'Energy');
        setTicks(ctime,1,50,'Move + Control + Restore + Leech'); 
        setTicks(ctime,6,47,'GA Gen.');
        setTicks(ctime,2,42,'Infil.'); 
        setTicks(ctime,24,2*60+56,'Planet');
        setTicks(ctime,8,6*60+58,'Production');
        setTicks(ctime,24,5*60+5,'Ranks'); 
        setTicks(ctime,24,7*60+05,'Lists');
	setTicks(ctime,2,90,'NA');
	setTicks(ctime,2,30,'Control/Battle + NA');
        tick.sort();
        upcoming();
//        setTimeout('startTimer()',1000)
    };
    
    setTicks = function (ctime,itime,dtime,n) {   
        dtime*=60;
        itime*=60*60;
        var stime=itime-((ctime+(itime-dtime))%itime);
        var ltime = ctime+stime;
        var ttime = addZero(Math.floor(stime/3600%24))+":"+addZero(Math.floor(stime/60%60))+":"+addZero(Math.floor(stime%60));
        var ltime = addZero(Math.floor(ltime/3600%24))+":"+addZero(Math.floor(ltime/60%60));
        this.tick.push(ttime +' - ' + n + ' @ ' + ltime+"");
    };
    
    addZero = function (i) {
        if (i<10){ i="0"+i; return i;
        }else if(isNaN(i)) return "00"+i;
        return i;
    }
    
    upcoming = function () {   
        var d = 'Ticks: ' + tick[0].split('-')[1] + ' - '+ tick[1].split('-')[1] + ' - ' + tick[2].split('-')[1];
        element.innerHTML = d;
        
    };
    startTimer(); 

} // end ticks object
function addTicks() {
   // Insert ticks bar
   $('<div id="ticks"></div>').insertBefore("table[width=700]:eq(0)");
   $('#ticks').css('color','#BF991A');   $('#ticks').css('text-align','center');   $('#ticks').css('width','600px');
   $('#ticks').css('padding-left','100px');   $('#ticks').css('font-family','Arial,Tahoma');   $('#ticks').css('font-size','11');
   d = new upcomingTicks(document.getElementById('ticks'));
}


function fleetCheckAll() 
{
  $(document).ready(function(){
    var checkAll = true;
    $("tr > td[class=hr][colspan=3] > hr").before('<input type="button" name="checkAllFleets" id="checkAllFleets" value="Check all">');
    $("#checkAllFleets").click(function(){
        $("input[type=checkbox][name^=reroute]").attr('checked', checkAll);
        if (checkAll == true) {
            $("#checkAllFleets").attr("value", "Uncheck all");
            checkAll = false;
        } else {
            $("#checkAllFleets").attr("value", "Check all");
            checkAll = true;
        }
    });
  });
}

function civInvest(){
var inputWrappers = document.getElementsByTagName( 'input' );

// used later to insert the new inf0 input
var tmpHolder = null;
var inf0;

// alter some of the inputs
for( var w = 0; w < inputWrappers.length; w++ ) {
	if( inputWrappers[w].name == 'confirm' ) {
		inputWrappers[w].name = 'confirm1';
	}
	if( inputWrappers[w].name == 'incciv' ) {
		inputWrappers[w].name = 'globalciv';
	}
	if( inputWrappers[w].name == 'planetid' ) {
		inf0 = inputWrappers[w].cloneNode( 0 );
		inf0.name = 'inf0';
		tmpHolder = inputWrappers[w];
	}
	}
// add that new input type
	tmpHolder.parentNode.insertBefore( inf0, tmpHolder );
}
// Excute tools once DOM is loaded
jQuery(document).ready(function() {
	//center page
//	jQuery("body").css('margin-left', 'auto');
//	jQuery("body").css('margin-right', 'auto');
//	jQuery("body").css('width','900px');
//	jQuery("img:first").click( function() {$('#ToolTable').show();});
	

	switch(jQuery.url.setUrl(window.location.href).attr("path")) {
		case '/servlet/Forums': break;
		case '/servlet/Home':
			addTicks(); 
		//	addToolUpdateForm();
		//	addHistDWMapLinks('Home');
		break;
		case '/servlet/Floats': 
			changeFleetlinks();
			fleetCheckAll();
		//	addHistDWMapLinks('Floats');
		break;
		case '/servlet/Planetfloats':
			if (!$.browser.msie) {
				$oFleetManagment = jQuery("td:contains('Fleets management')");
				$oFleetManagment.find("font:first b").append(' Extended');
				$oFleetManagment.find("td[colspan]").append(getScoutingForm());
				jQuery("#launchScouting").click(function() { launchScouting(); });
			}
		break;
		case '/servlet/Floatorders': break;
		case '/servlet/Planet':
			if(jQuery.url.setUrl(window.location.href).param("incciv") == '') 					
			{	civInvest();
			}
			
		break;
		case '/servlet/Trading': break;
		case '/servlet/Planetprod':
//			ToolTrading.sortTradeList();
		break;
		case '/servlet/Maps':
			ToolMaps.addMapsTabs();
//			ToolMaps.addTradingButtons();
			ToolMaps.addTradingOptions();
		break;
		case '/servlet/Player': break;
		case '/servlet/Cash': break;
		case '/servlet/Preferences': break;
		case '/servlet/Infiltrations': break;
		case '/servlet/Planetinf': 
			removeInfil90s();
			prefill90percent();
			$oInfils = jQuery("select[name=infplanetid]").parent().parent();
			$oInfils.append('<div id="Blaat"></div>');
			BuildNewInfilTable();
	   		jQuery("td :contains('Infiltrated planet')").parent('table').prepend('<tr><td colspan="4"><form action="http://www.fenix-hyp.com/infil/index.html" target="_newtab"><input type="submit" value="Infiltration Tool"></form></td></tr>');
		//	jQuery("#SortInfils").click(function() { FastSortInfilTable(); });
		break;
		case '/servlet/Techtree': break;
		default: console.log(jQuery.url.setUrl(window.location.href).attr("path")); break;
	}
});

/* ================================================================================
*  azaron01.js = some tools made by Azaron
*  ================================================================================   
*  FIRST OF ALL WAIT UNTIL PAGE (regardless which) IS FULLY LOADED
*  ================================================================================   
*/

var alreadyrunflag=0; //flag to indicate whether target function has already been run

if (document.addEventListener)
  document.addEventListener("DOMContentLoaded", function(){alreadyrunflag=1; aza_check_url(); }, false)
else if (document.all && !window.opera){
  document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>')
  var contentloadtag=document.getElementById("contentloadtag");
  contentloadtag.onreadystatechange=function(){
    if (this.readyState=="complete"){
      alreadyrunflag=1;
      aza_check_url();
    }
  }
}

var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = function(){
        setTimeout("if (!alreadyrunflag) aza_check_url()", 0);
    };
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      setTimeout("if (!alreadyrunflag) aza_check_url()", 0);
    }
  }

function aza_check_url() { 

  var docurl = document.URL;
  //alert("reached url = " + docurl);

  var search_str = /.*hyperiums\.com\/servlet\/(.*)\?(.*)\?(.*)/;
  if(search_str.exec(docurl) == null) {
  	search_str = /.*hyperiums\.com\/servlet\/(.*)\?(.*)/;
  	if(search_str.exec(docurl) == null) {
		search_str = /.*hyperiums\.com\/servlet\/(.*).*/;
		search_str.exec(docurl);
	}
  }


  //alert("regex = " + RegExp.$2);
  switch (RegExp.$1) {
  	case "Floats":
  		var pagetype = document.getElementsByName('pagetype');

  	case "Floatorders":
  		aza_more_divide();
  		break;
  }

}

function aza_more_divide() {
//	alert("aza_more_divide() reached");
	
	var old_btn_divide = document.getElementsByName("divide")[0];
	var old_nbtimes = document.getElementsByName("nbtimes")[0];
	
	if(old_nbtimes == null || old_nbtimes == undefined) { return false; }

	var oldhtml_stuff = old_btn_divide.parentNode.innerHTML;
	var additional_stuff = "<br>" +
	"<input onclick=\"aza_do_divides_click()\" value=\"divide more\" name=\"divide_more\" class=\"button\" type=\"button\">" +
	"<input value=\"\" id=\"more_times\" name=\"more_times\" size=\"11\" maxlength=\"11\" type=\"text\">";
	
	old_btn_divide.parentNode.innerHTML = oldhtml_stuff + additional_stuff;
	
} 
 
function aza_do_divides_click() {
//		alert("more divide clicked");
		
		var i=0;
		while(i<=document.forms.length) {
			if(document.forms[i].action.search("Floatorders") != -1) {
				break;
			}
			i++;
		}
		
		var form_floatorders=document.forms[i];
		var url = "http://www.hyperiums.com/servlet/Floatorders?";
		
		var i = 0;
		while(i < form_floatorders.elements.length) {
				if(form_floatorders.elements[i].name != null && 
				   form_floatorders.elements[i].name != "nbtimes" && 
				   form_floatorders.elements[i].name != "cancel" &&
				   form_floatorders.elements[i].value != null ) {
				url = url + form_floatorders.elements[i].name + "=" + form_floatorders.elements[i].value + "&";
			}
			i++;
		}
		
		var nbr_clicks = document.getElementById("more_times").value;
		// alert("nbr_clicks = " + nbr_clicks);
		
	var urls = [];
	var x = 0;
	while(nbr_clicks>0) {
		if(nbr_clicks>10) {
			urls[x] = url + "nbtimes=10";
    		nbr_clicks = nbr_clicks - 10;
			x++;
    	} else {
			urls[x] = url + "nbtimes=" + nbr_clicks;
    		nbr_clicks = 0;
        }	
	}
		
	var curr_time = new Date().getTime();
	var dividewindow = window.open("", "azatools" + curr_time);
	
	var aza_url = new aza_call_url_interval();
	aza_url.setWindow(dividewindow);
	aza_url.setURLs(urls);
	aza_url.causeInterval();  
		
}


function aza_call_url_interval() {

	var internalURLs = [];
	var internalCounter = 0;
	var internalWindow = "";
	var intervalID = "";
	
	function intervalfunc() {
		// alert("internalCounter = " + internalCounter + "\n" +
			// "internalURLs.length. = " + internalURLs.length + "\n" +
			// "internalURLs[internalCounter] = " + internalURLs[internalCounter]);
		if(internalCounter<internalURLs.length) {
			internalWindow.location = internalURLs[internalCounter];
			internalCounter++;
		} else {
			clearInterval(intervalID);	
		}
	}
	
	this.setWindow = function(val1) {
		internalWindow = val1;
	}
	
	this.setURLs = function(val2) {
		internalURLs = val2;
	}
	
	this.causeInterval = function() {
		intervalID = setInterval(intervalfunc, 1000);
		// alert(intervalID);
	}
}